Ошибка ServerProtocolViolation

2

Я нажимаю сервер со следующим кодом и сталкиваюсь с ошибкой ServerProtocolViolation:

// Prepare the webpage
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url + queryString);

// execute the request
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Кто-нибудь знает, как обойти эту ошибку?

Теги:

2 ответа

3
Лучший ответ

Эта ошибка означает, что веб-сервер, на который вы отправляете запрос, не соответствует стандарту HTTP.

Помимо исправления сервера или перезаписи HttpWebRequest, чтобы быть более щедрым, вы не можете сделать это.

Какой URL-адрес вы запрашиваете и какой текст исключения?

EDIT. Если вы запросите URL-адрес в Fiddler, вы увидите, что сервер didn Не возвращайте заголовки. Вам следует связаться с владельцем сервера и подать жалобу.

В качестве обходного пути, если вы запускаете Fiddler при отправке запроса, Fiddler будет исправлять ответ и разрешать HttpWebResponse для его анализа.

  • 1
    URL, который я запрашиваю, является следующим: aviationknowledge.colorado.edu/cgi-bin/… Текст исключения: Сервер совершил нарушение протокола. Раздел = ResponseStatusLine
0

Просто быстрая заметка по другой причине, которую я испытал:

Если вы настроите свой запрос на использование прокси-сервера (т.е. через HttpWebRequest.Proxy свойство), и вы используете неправильный порт прокси, возможно, также будет возможность увидеть эту ошибку.

В моем случае я сконфигурировал http://127.0.0.1/ как прокси-сервер, но вместо этого был действительный прокси-сервер, работающий на http://127.0.0.1:808/ (т.е. порт "808" вместо "80" ).

Если это так, попробуйте использовать прокси-сервер или, конечно, настройте правильный порт прокси.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню