Fiddler делает поведение HttpWebRequest/HttpClient неожиданным
Просто хотел спросить, сталкивался ли кто-нибудь с проблемой использования класса HttpWebRequest (или даже нового HttpClient) при попытке загрузить какой-либо файл на сервер при запуске Fiddler.
Я столкнулся с ошибкой, а именно, свойство AllowWriteStreamBuffering класса HttpWebRequest не работает при запуске фиддлера, поэтому процесс загрузки вообще не работает. Байты не отправляются мгновенно, но буферизируются, даже если для параметра AllowWriteStreamBuffering установлено значение true, поэтому я не могу отслеживать ход загрузки. Это работает нормально, когда Fiddler не запущен.
Более того, если я закрою fiddler, когда мое приложение загружает какой-либо файл, оно тоже аварийно завершит работу, выдав исключение WebException, которое сообщает: " Основное соединение было закрыто: при получении произошла непредвиденная ошибка ".
То же самое происходит с новым классом.net 4.5 HttpClient.
2 ответа
Извините за путаницу; Fiddler в настоящее время поддерживает только потоковую передачу ответов, а не запросов.
Некоторые прокси-серверы (например, Fiddler) или другие посредники будут полностью буферизовать запрос перед отправкой его на сервер по причинам производительности или функциональности (например, поиск вирусов, отладка точек останова).
Хорошо, меня это заинтересовало, похоже, что для того, чтобы AllowWriteSteamBuffering работал, сервер должен поддерживать кодирование передачи Chunked. который привел меня к этому сообщению на форуме о прокси и вышеупомянутой кодированной части: https://groups.google.com/forum/?fromgroups=.
Из того, что я здесь прочитал, следует, что при использовании прокси вы можете получить или не получить кодировку по частям и т. Д., Следовательно, ваша проблема.
Я также нашел это, которое казалось хорошей подробной статьей о загрузке с отзывами, которые могут быть полезны?