Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 1
1

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

09.01.2017, 14:32. Просмотров 2390. Ответов 2
Метки нет (Все метки)


Здрасте! Такой вопросец нагрянул, надо написать функцию обращения к серверу и получения ответа, но если статус код не 200, а например 404 (страница не найдена) приложение вырубается и ругается. Есть функция:

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

Как используя WebResponse и WebRequest получить исходный html код страницы zakupki.gov.ru
Здравствуйте. Подскажите пожалуйста как передать строку с помощью WebResponse + WebRequest и...

Как передать строку посредством WebRequest и WebResponse
Как передать строку по средствам WebRequest и WebResponse собстна и сама строка....

Как узнать статус сервера сайта игры?
Сообственно хочу узнать как получить статус сервера игры: (мона или нельзя играть) например: Если...

WebRequest и WebResponse. Авторизация на сайте
Привет. Проблема с куками. Авторизироваться получается, а использовать куки снова - нет....

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы С#-разработчиков‌
2
Администратор
Эксперт .NET
13126 / 10693 / 4413
Регистрация: 17.03.2014
Сообщений: 21,531
Записей в блоге: 1
09.01.2017, 15:25 2
JonnikTop, нужно перехватить WebException.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
private string POST(string Url, string Data)
{
    WebRequest req = WebRequest.Create(Url);
    req.Method = "POST";
    req.Timeout = 100000;
    req.ContentType = "application/x-www-form-urlencoded";
    using (Stream sendStream = req.GetRequestStream())
    {
        byte[] sentData = Encoding.GetEncoding(1251).GetBytes(Data);
        sendStream.Write(sentData, 0, sentData.Length);
    }
    
    try
    {
        using (WebResponse res = req.GetResponse())
        using (Stream receiveStream = res.GetResponseStream())
        using (StreamReader sr = new StreamReader(receiveStream, Encoding.UTF8))
        {
            return sr.ReadToEnd();
        }
    }
    catch (WebException ex) //when (ex.Response != null) // Раскоментировать в C#
    {
        if (ex.Response == null) throw; // Убрать в C# 6
        return null;
    }
}
Проверка ex.Response == null нужна чтобы отсеять ситуации связанные с отсутствием ответа от сервера - проблемы с сетью, DNS и т.д.
1
0 / 0 / 0
Регистрация: 27.11.2016
Сообщений: 5
09.01.2017, 17:05 3
Спасибо, помогло)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.01.2017, 17:05

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Ошибка с http адресацией через WebRequest, WebResponse
Собственно написал код для считывание html кода с http страниц: string uri =...

Как узнать кодировку ответа от сервера?
Направляю такой запрос (из консоли Linux, если это имеет значение): GET / HTTP/1.1\r\n host:...

Как получить код ответа сервера?
Нужно получить заголовок страницы. Что-то вроде: -задаем url страницы - получаем "200" или "301"...

Как получить код ответа сервера?
Есть какая нибудь функция, чтобы узнать код ответа? Типа даёшь урл, а он тебе возвращает 200, 404 и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.