Я отвечу на свой вопрос после дополнительных исследований.Кажется, что веб-сайт, с которым у меня возникла проблема, возвращает что-то неправильное, когда IE, FF и URLOpenPullStream не распознают его как допустимый контент gzip.Заголовки в порядке, например,
HTTP/1.1 200 OK
Content-Type: text/html; charset=iso-8859-1
Content-Encoding: none
Server: Microsoft-IIS/6.0
MSNSERVER: H: COL102-W41 V: 15.4.317.921 D: 2010-09-21T20:29:43
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 4258
Date: Wed, 27 Oct 2010 20:48:15 GMT
Connection: keep-alive
Set-Cookie: xidseq=4; domain=.live.com; path=/
Set-Cookie: LD=; domain=.live.com; expires=Wed, 27-Oct-2010 19:08:15 GMT; path=/
Cache-Control: no-cache, no-store
Pragma: no-cache
Expires: -1
Expires: -1
, но URLOpenPullStream только что загрузил его в сжатом сжатом формате, IE сообщает об ошибке, если вы пытаетесь получить доступ к сайту, а FF показывает мусор.
После выполнения теста с сайтом, который возвращает действительный контент gzip, например, www.webcompression.org, IE, FF и URLOpenPullStream работали нормально.Таким образом, кажется, что URLOpenPullStream действительно поддерживает контент gzip.В данном случае это было прозрачно.В OnDataAvailable я получил несжатые данные, а в OnResponse заголовки не показывали Content-Encoding как gzip.
К сожалению, это все еще не решило мою проблему.Я решил, проверив заголовки ответа в событии OnResponse.Если Content-Encoding был gzip, то я установил флаг, и когда загрузка была завершена, я использовал процедуры zlib gzip для распаковки содержимого.Казалось, это работает нормально.Это подходит для моего редкого случая, поскольку обычно я никогда не получаю Content-Encoding: gzip в заголовках OnResponse, поскольку URLOpenPullStream прозрачно обрабатывает распаковку.
Не знаю:)