Я делаю запрос к веб-сайту через объекты HttpWebRequest / HttpWebResponse.
Я совершаю несколько успешных звонков на веб-сайт, и все остальные звонки на одну и ту же динамическую страницу не выполняются.
В отладчике я получаю, что "Внутренняя ошибка сервера 500" Fiddler также показывает ответ 500 и содержит:
[Fiddler] Response Header parsing failed.
This can be caused by an illegal HTTP response earlier on this reused server socket-- for instance, a HTTP/304 response which illegally contains a body.
Response Data:
<plaintext>
0D 0A 3C 21 44 4F 43 54 59 50 45 20 48 54 4D 4C 20 50 55 42 4C 49 43 20 ..<!DOCTYPE HTML PUBLIC
22 2D 2F 2F 57 33 43 2F 2F 44 54 44 20 48 54 4D 4C 20 34 2E 30 20 54 72 "-//W3C//DTD HTML 4.0 Tr
61 6E 73 69 74 69 6F 6E 61 6C 2F 2F 45 4E 22 3E 0D 0A 3C 48 54 4D 4C 3E ansitional//EN">..<HTML>
0D 0A 09 3C 48 45 41 44 3E 0D 0A 09 09 3C 74 69 74 6C 65 3E 56 69 65 77 ...<HEAD>....<title>View
Я удалил все шестнадцатеричные значения и просмотрел страницу, и это то, что я ожидаю получить, но по какой-то причине сервер сообщает 500, и объект HttpWebRequest вызывает исключение.
Я перепробовал все другие "исправления" для этой проблемы, но ни одна из них не работает. Это могут быть просто искаженные данные, отправленные с сервера, но есть ли объект более низкого уровня, чтобы использовать его, чем HttpWebRequest, с которым нельзя работать?
РЕДАКТИРОВАТЬ: Я не включил весь шестнадцатеричный / весь HTML-блок в приведенном выше примере.
РЕДАКТИРОВАТЬ: Отключение Fiddler Я получаю это в отладчике
РЕДАКТИРОВАТЬ: Итак, из того, что я видел, объект HttpWebResponse действует соответственно. Сервер просто ненадежный и иногда возвращает одни и те же точные данные с разными кодами состояния http. Для быстрого исправления я просто обернул каждый вызов в try / catch и в блок catch, просто повторяя один и тот же вызов. Пока он работает отлично и почти доказывает, что это ошибка сайтов, а не объект HttpWebResponse.
The server committed a protocol violation. Section=ResponseStatusLine