Как узнать статус код ответа сервера WebRequest и WebResponse? - C#

Узнай цену своей работы

Формулировка задачи:

Здрасте! Такой вопросец нагрянул, надо написать функцию обращения к серверу и получения ответа, но если статус код не 200, а например 404 (страница не найдена) приложение вырубается и ругается. Есть функция:
Листинг программы
  1. private string POST(string Url, string Data)
  2. {
  3. WebRequest req = WebRequest.Create(Url);
  4. req.Method = "POST";
  5. req.Timeout = 100000;
  6. req.ContentType = "application/x-www-form-urlencoded";
  7. byte[] sentData = Encoding.GetEncoding(1251).GetBytes(Data);
  8. req.ContentLength = sentData.Length;
  9. Stream sendStream = req.GetRequestStream();
  10. sendStream.Write(sentData, 0, sentData.Length);
  11. sendStream.Close();
  12. WebResponse res = req.GetResponse();
  13. Stream ReceiveStream = res.GetResponseStream();
  14. StreamReader sr = new StreamReader(ReceiveStream, Encoding.UTF8);
  15. //Кодировка указывается в зависимости от кодировки ответа сервера
  16. Char[] read = new Char[256];
  17. int count = sr.Read(read, 0, 256);
  18. string Out = String.Empty;
  19. while (count > 0)
  20. {
  21. String str = new String(read, 0, count);
  22. Out += str;
  23. count = sr.Read(read, 0, 256);
  24. }
  25. return Out;
  26. }
Нашел на каком-то сайтике, как сделать если код не 200 чтобы в Out записывался например "0" или "Bad Response". Спасибо)

Решение задачи: «Как узнать статус код ответа сервера WebRequest и WebResponse?»

textual
Листинг программы
  1. private string POST(string Url, string Data)
  2. {
  3.     WebRequest req = WebRequest.Create(Url);
  4.     req.Method = "POST";
  5.     req.Timeout = 100000;
  6.     req.ContentType = "application/x-www-form-urlencoded";
  7.     using (Stream sendStream = req.GetRequestStream())
  8.     {
  9.         byte[] sentData = Encoding.GetEncoding(1251).GetBytes(Data);
  10.         sendStream.Write(sentData, 0, sentData.Length);
  11.     }
  12.    
  13.     try
  14.     {
  15.         using (WebResponse res = req.GetResponse())
  16.         using (Stream receiveStream = res.GetResponseStream())
  17.         using (StreamReader sr = new StreamReader(receiveStream, Encoding.UTF8))
  18.         {
  19.             return sr.ReadToEnd();
  20.         }
  21.     }
  22.     catch (WebException ex) //when (ex.Response != null) // Раскоментировать в C#
  23.     {
  24.         if (ex.Response == null) throw; // Убрать в C# 6
  25.         return null;
  26.     }
  27. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут