Веб-клиент C # не может получить ответ по протоколу https - PullRequest
0 голосов
/ 05 мая 2011

Когда я пытаюсь загрузить html с сервера по https, он возвращает код ошибки 500: но когда я открываю ту же ссылку в браузере, она работает нормально: есть ли способ сделать это? Я использую Webclient, а также отправляю на сервер информацию об использовании агента:

HttpWebRequest req1 = (HttpWebRequest)WebRequest.Create("mobile.unibet.com/";); 
req1.UserAgent = @"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5";
var response1 = req1.GetResponse();
var responsestream1 = response1.GetResponseStream();

Ответы [ 2 ]

0 голосов
/ 08 сентября 2011

Дэвид прав, это обычно происходит, когда сервер ожидает некоторые заголовки, которые не были переданы, в вашем случае Accept

этот код работает сейчас

string requestUrl = "https://mobile.unibet.com/unibet_index.t";
var request = (HttpWebRequest)WebRequest.Create(requestUrl);
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.UserAgent = "//Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";

using (var response = request.GetResponse() as HttpWebResponse)
{
 using (var sr = new StreamReader(response.GetResponseStream()))
 {
           var responsestring = sr.ReadToEnd();
       if (!string.IsNullOrEmpty(responsestring))
       {
    Console.WriteLine(responsestring);
           }
  }
 }
0 голосов
/ 05 мая 2011

Вероятно, это должен быть комментарий, но в комментарии недостаточно места для всех вопросов ... Не думаю, что в вопросе достаточно информации, чтобы ответить с какой-либо степенью уверенности.

A 500 error означает проблему на сервере. Краткий ответ: браузер отправляет некоторый контент, который не является веб-клиентом.

WebClient может не отправлять заголовки, ожидаемые сервером. Требует ли сервер аутентификации? Является ли это страницей компании, с которой вы заключили договор, и, возможно, предоставили вам учетные данные или ключ API, который необходимо добавить HTTP Authorization ?

Если это то, что вы делаете с компанией, с которой у вас есть партнерство, вы должны попросить их отследить причину ошибки 500. В противном случае вам может потребоваться предоставить нам пример кода и дополнительную информацию, чтобы мы могли предложить больше предложений.

...