|
Как распаковать ответ, сжатый GZip`ом (VB.NET)
|
|||
---|---|---|---|
#18+
здравствуйте. Есть объект w AS new WinHttpRequest, у которого в w.ResponseText сидит сжатый GZip`ом ответ сервера Подскажите, как мне его правильно конвертнуть/распаковать, чтобы объект Doc: Код: vbnet 1. 2.
в результате представлял собой то, что нужно (html страничку) Если использовать doc.write(w.ResponseText) - то получается ерунда, т.к. ответ сжатый. Пробовал делать так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Но это не работает. В Doc после этого ерунда какая-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2013, 23:04 |
|
Как распаковать ответ, сжатый GZip`ом (VB.NET)
|
|||
---|---|---|---|
#18+
http://msdn.microsoft.com/en-us/library/windows/desktop/hh227298(v=vs.85).aspx Decompression Support Support for gzip and deflate compression scheme (WinHTTP): no ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 09:20 |
|
Как распаковать ответ, сжатый GZip`ом (VB.NET)
|
|||
---|---|---|---|
#18+
Разумный вопрос: а что делать? Разумный ответ: использовать HttpWebResponse . ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 09:22 |
|
Как распаковать ответ, сжатый GZip`ом (VB.NET)
|
|||
---|---|---|---|
#18+
МСУ, спасибо за ответ. Я в курсе, что WinHTTP не поддерживает автораспаковки сжатой страницы, в отличие от HttpWeb или как он там называется. WinHTTP просто возвращает в ResponseText сжатую GZip`ом строку. Вот её мне и надо как-то разжать... и уже результат закинуть в Doc. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 09:32 |
|
Как распаковать ответ, сжатый GZip`ом (VB.NET)
|
|||
---|---|---|---|
#18+
Диам, я думаю, без вариантов. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 09:44 |
|
Как распаковать ответ, сжатый GZip`ом (VB.NET)
|
|||
---|---|---|---|
#18+
МСУДиам, я думаю, без вариантов.вы считаете, что невозможно распаковать строку, полученную от WinHttp? Почему? Это как-то несерьезно. Я знаю, что это возможно, но у меня это пока не получается за недостатком опыта. На дельфи я тоже самое делаю без проблем - получаю ответ сжатый GZip`ом, распаковываю и получаю рабочую страницу. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 09:59 |
|
Как распаковать ответ, сжатый GZip`ом (VB.NET)
|
|||
---|---|---|---|
#18+
Диамвы считаете, что невозможно распаковать строку, полученную от WinHttp? Почему? Ну я же дал ответ выше: not support for gzip and deflate compression scheme ДиамЭто как-то несерьезно. Я знаю, что это возможно, но у меня это пока не получается за недостатком опыта. На дельфи я тоже самое делаю без проблем - получаю ответ сжатый GZip`ом, распаковываю и получаю рабочую страницу. Что мешает использовать HttpWebResponse? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 10:02 |
|
Как распаковать ответ, сжатый GZip`ом (VB.NET)
|
|||
---|---|---|---|
#18+
МСУНу я же дал ответ выше: not support for gzip and deflate compression scheme Ваша ссылка говорит о том, что WinHttp не поддерживает автоматической распаковки. То есть, получая запакованный ответ, распаковать его - это уже моя проблема. Вот с ней я и обращаюсь за помощью. авторЧто мешает использовать HttpWebResponse? Необходимость вручную переносить куки. Еще словил проблему, что при отправке POST запроса, этот запрос отправляется в момент когда я Writer`ом записываю тело формы для отправки, а не в момент вызова GetResponse(). В результате, я не могу получить ответ в стрим. Может я там еще не до всего докопался, но пока легче работать с WinHttp ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 10:14 |
|
Как распаковать ответ, сжатый GZip`ом (VB.NET)
|
|||
---|---|---|---|
#18+
ДиамМСУНу я же дал ответ выше: not support for gzip and deflate compression scheme Ваша ссылка говорит о том, что WinHttp не поддерживает автоматической распаковки. То есть, получая запакованный ответ, распаковать его - это уже моя проблема. Вот с ней я и обращаюсь за помощью. Так ничего не говорится про "автоматическую" распаковку. Так говорится о "support for gzip and deflate compression scheme". ДиамНеобходимость вручную переносить куки. "Переносить" откуда? Отправка кукисов не обязательна, что за вздор? ДиамЕще словил проблему, что при отправке POST запроса, этот запрос отправляется в момент когда я Writer`ом записываю тело формы для отправки, а не в момент вызова GetResponse(). Это вообще феерический бред. Кролик вырывается из рук и убегает в лес? Неверю (с) ДиамМожет я там еще не до всего докопался, но пока легче работать с WinHttp Так вот с этого и надо начинать вопрос. Я рекомендую тебе таки докопаться до HttpWebResponse. Его хватает за глаза и с горкой. Возникнут вопросы по работе с этим классом, спрашивай. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 10:29 |
|
Как распаковать ответ, сжатый GZip`ом (VB.NET)
|
|||
---|---|---|---|
#18+
МСУ, авторТак вот с этого и надо начинать вопрос. Я рекомендую тебе таки докопаться до HttpWebResponse. Его хватает за глаза и с горкой. Возникнут вопросы по работе с этим классом, спрашивай. Спасибо за ваше настойчивое советование что мне следует делать. Изучением HttpWebResponse я займусь и так, а сейчас у меня есть конкретный вопрос. Вы можете мне в нем помочь? Может проще вот так задать вопрос: есть строка запакованная в GZip. Как её правильно распаковать и получить строку распакованную? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 10:44 |
|
Как распаковать ответ, сжатый GZip`ом (VB.NET)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 10:46 |
|
Как распаковать ответ, сжатый GZip`ом (VB.NET)
|
|||
---|---|---|---|
#18+
МСУ, спасибо. А как это сделать родными средствами System.IO.Compressed ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 11:25 |
|
Как распаковать ответ, сжатый GZip`ом (VB.NET)
|
|||
---|---|---|---|
#18+
ДиамА как это сделать родными средствами System.IO.Compressed ? Так там сделано родными средствами System.IO.Compression. Смотри файл ZipHelper.cs. ZipHelper.cs Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 11:30 |
|
Как распаковать ответ, сжатый GZip`ом (VB.NET)
|
|||
---|---|---|---|
#18+
Диам, правда на c#, но может поможет byte[] r = System.Text.Encoding.Unicode.GetBytes(w.ResponseText); string _FileText = null; using (MemoryStream inStream = new MemoryStream(r)) using (GZipStream bigStream = new GZipStream(inStream, CompressionMode.Decompress)) using (MemoryStream bigStreamOut = new MemoryStream()) { bigStream.CopyTo(bigStreamOut); _FileText = System.Text.Encoding.Unicode.GetString(bigStreamOut.ToArray()); } ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 11:31 |
|
|
start [/forum/topic.php?fid=20&msg=38454027&tid=1403739]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
78ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 178ms |
0 / 0 |