:: Visual Foxpro, Foxpro for DOS
Re: WinHttp.WinHttpRequest - проблемка с юникодом
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
adw0rd.com - вот тут что-то написано, как на сервере (сервер - это место где работает генератор страниц? или наоборот?) "HTML-файлы могут быть уменьшены в размере. Рекомендуется применить для них технику minify", но ниче не понял, что делает, должен делать, при этом браузер...

www.8host.com - еще. Интересная фраза - "Для корректной работы mod_deflate клиент (обычно браузер) должен поддерживать сжатие. Если клиент не поддерживает сжатие файлов, они будут отправлены в исходном виде." Т.е. не говори серверу, что ты можешь раззиповать (User-Agent ?)

sysoev.ru - хорошо разжевано. написано, что "перед сжатым потоком должно быть 2 байта заголовка zlib" (у тебя 78 9C), и браузер (у тебя его нет, вместо него твой код вокруг XMLHTTPrequest-ера) должен его сам понимать... Так что ли...



Исправлено 4 раз(а). Последнее : of63, 15.03.18 20:46
Ratings: 0 negative/0 positive
Re: WinHttp.WinHttpRequest - проблемка с юникодом
Рома

Сообщений: 1079
Дата регистрации: 06.06.2001
AndyNigmatec
не взлетело ... тако же зажатый файл получаю

Из документации msdn.microsoft.com
Цитата:
The following list describes the conditions under which WinINet will perform content decoding when the option is enabled:

The Accept-Encoding header must be present in the request, and it must specify the gzip, deflate, or both gzip and deflate encoding schemes.

Соответственно, надо добавить

lpszHeaders = "Accept-Encoding: gzip, deflate"
hUrl = InternetOpenUrl(lnInetHandle, lcUrl, lpszHeaders, Len(lpszHeaders), 0, 0)


Ratings: 0 negative/0 positive
Re: WinHttp.WinHttpRequest - проблемка с юникодом
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
А если серверу не говорить фразу
lpszHeaders = "Accept-Encoding: gzip, deflate"
то он пришлет ответный текст не в сжатом виде? Андрей-то вообще не указал никакого заголовка в запросе к серверу...
Ratings: 0 negative/0 positive
Re: WinHttp.WinHttpRequest - проблемка с юникодом
AndyNigmatec
Автор

Сообщений: 1573
Откуда: Волгоград
Дата регистрации: 28.06.2015
Спасибо! Просвещением занимаетесь )))

Вопчем попробовал ...

засылая lpszHeaders = "Accept-Encoding: gzip, deflate"
получаю
ERROR_INTERNET_DECODING_FAILED
12175
WinINet failed to perform content decoding on the response. For more information, see the Content Encoding topic.
а заслав lpszHeaders = "Accept-Encoding: identity" получаю тот же зажатый offzip-ом файл - ну т.е. напрямую забирается как я понимаю, а wininet не может выполнить декодирование содержимого в ответе



Исправлено 1 раз(а). Последнее : AndyNigmatec, 15.03.18 21:42
Ratings: 0 negative/0 positive
Re: WinHttp.WinHttpRequest - проблемка с юникодом
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
В заголовках ответных чего получаешь?


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: WinHttp.WinHttpRequest - проблемка с юникодом
AndyNigmatec
Автор

Сообщений: 1573
Откуда: Волгоград
Дата регистрации: 28.06.2015
вот чего мозила показала ...

GET HTTP/1.1 200 OK
Host:*******************
User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding:gzip, deflate
upgrade-insecure-requests:1
origin:moz-extension://7f8149bf-4c97-4b42-a12e-e79e30bf6c72
Connection:keep-alive


Server:nginx/1.8.1
Date:Thu, 15 Mar 2018 18:49:00 GMT
Content-Type:text/plain; charset=utf-8
Content-Length:365617
Connection:keep-alive
Content-Disposition:attachment; filename=ref.csv
Content-Encoding:deflate
Ratings: 0 negative/0 positive
Re: WinHttp.WinHttpRequest - проблемка с юникодом
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
2 ИК:
Передавая
Accept-Encoding:gzip, deflate
браузер не говорит серверу, что deflate-сжатие он готов разжать, и все виды сжатия "deflate" он готов расжать, и что он сам разберется с уровнями зажатия и типом? Нет?
Ratings: 0 negative/0 positive
Re: WinHttp.WinHttpRequest - проблемка с юникодом
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Мозила не интересна - интересен твой компонент. Ещё поставь проксю (самую примитивную) и посмотри какие именно заголовки шлёт твой код - те что ты там вручную указал - далеко не всё что эта хитрая зараза пошлёт...

2 of63 именно это и говорит. принимаю-кодировку: список, чего, принимаю.
Только там всё гораздо сложнее - читай спецификации протоколов, RFC для понимания. Если интересно


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: WinHttp.WinHttpRequest - проблемка с юникодом
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Нет ничего интереснее, чем читать RFC, сделанные в 90х. И ни одна зараза в РФ не занялась перевести (хотя переводы чреваты, см наш фоксовый хелп)... и потом жалуются, что в РФ все такие тупые, аглицкого не розумеют...
Ratings: 0 negative/0 positive
Re: WinHttp.WinHttpRequest - проблемка с юникодом
AndyNigmatec
Автор

Сообщений: 1573
Откуда: Волгоград
Дата регистрации: 28.06.2015
Пока учат - нужно учиться )))
Итак, нашел и поставил HTTP Analyzer, задал ему снифить vfp9.exe

1) запустил вообще без ручной отправки заголовка - lpszHeaders = ""
при этом получил (скачался) зажатый файл
вот что вижу (хост потер)



2) далее заслал с lpszHeaders = "Accept-Encoding: gzip, deflate"
получил указанную ранее ошибку 12175, вот заголовки


3) lpszHeaders = "Accept-Encoding: deflate"
опять получил ошибку 12175, вот заголовки


4) lpszHeaders = "Accept-Encoding: identity"
опять получил (скачался) зажатый файл


ну и на всяк код который тестировался:


и кстати, несмотря на то что в ответах показывает Content-Lenght - файло что скачивалось имеет размер 365617, а после обработки offzip имеет читаемый вид и размер 1576К, что соответствует Content-Length=1613845 ...

Пока еще не догнал что не так то делаю ...



Исправлено 6 раз(а). Последнее : AndyNigmatec, 16.03.18 01:48
Ratings: 0 negative/0 positive
Re: WinHttp.WinHttpRequest - проблемка с юникодом
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Давай адрес, иначе я не понимаю. Надо более интерактивно.
Опять я суюсь не в свое дело...

Слушай, твой адрес зашибись работает в HMLHTTPrequest (код взял из соседнего топика же). Получаю текст в ResponseText, сразу в читаемом виде...




Исправлено 1 раз(а). Последнее : of63, 16.03.18 10:23
Ratings: 0 negative/0 positive
Re: WinHttp.WinHttpRequest - проблемка с юникодом
AndyNigmatec
Автор

Сообщений: 1573
Откуда: Волгоград
Дата регистрации: 28.06.2015
of63
Слушай, твой адрес зашибись работает в HMLHTTPrequest

пустой ответ получаю ... но я на вин10 сие тестю
Ratings: 0 negative/0 positive
Re: WinHttp.WinHttpRequest - проблемка с юникодом
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
В 10ке нет этого обьекта? Хм... У меня нет 10ки под рукой...
А вот так:
Доб. Аа, пустой ответ... А если там же, но с машины с более старой ОС, заработает?
А твой код из первого поста действительно не работает на моей ОС (возвращает offzip-код)



Исправлено 2 раз(а). Последнее : of63, 16.03.18 11:28
Ratings: 0 negative/0 positive
Re: WinHttp.WinHttpRequest - проблемка с юникодом
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Вот эту строку добавил (перед .Send) в твой код из 1го поста, и у меня заработало:
loHttp.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0")
Ratings: 0 negative/0 positive
Re: WinHttp.WinHttpRequest - проблемка с юникодом
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Видимо эти товарищи, которые нам совсем не товарищи, только браузерам позволяют забирать инфу
По крайней мере отсутствие Content-Encoding в ответе, если не указан User-Agent маскирующий прогу под браузер, намекают на это.


------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 23 WbrErr Guest (Гостей: 21)

© 2000-2024 Fox Club 
Яндекс.Метрика