1

Тема: AHK: POST Запрос

Доброго времени суток. Как переделать POST запрос с формата PowerShell https://dumpz.org/brE72HPHn2Yd на AHK?
Я пытался сделать, https://dumpz.org/aZseyM2yrmN7 но у меня не получилось.
В ответе должно возвращать решение анаграммы, а возвращает страницу 404 с запроса.

2

Re: AHK: POST Запрос

WinHTTP := ComObjCreate("WinHTTP.WinHttpRequest.5.1")

WinHTTP.Open("POST", "https://cepia.ru/service/words/findbyanagram", 0)

WinHTTP.SetRequestHeader("Accept", "*/*")
WinHTTP.SetRequestHeader("Accept-Encoding", "deflate, br")
WinHTTP.SetRequestHeader("Host", "cepia.ru")
WinHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:65.0) Gecko/20100101 Firefox/65.0")
WinHTTP.SetRequestHeader("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3")
WinHTTP.SetRequestHeader("Referer", "https://cepia.ru/anagram")
WinHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded; iso-8859-5")
WinHTTP.SetRequestHeader("X-Requested-With", "XMLHttpRequest")
WinHTTP.SetRequestHeader("Content-Length", "26")
WinHTTP.SetRequestHeader("Connection", "keep-alive")
WinHTTP.SetRequestHeader("Cookie", "ASP.NET_SessionId=2coozjonnxcv2jaacd2c1a1n; _ga=GA1.2.1099246647.1550969827; _gid=GA1.2.62356088.1550969827; _ym_uid=1550969828733452397; _ym_d=1550969828; _ym_isad=2; _gat=1; _ym_visorc_25144895=w")
WinHTTP.SetRequestHeader("TE", "Trailers")
WinHTTP.SetRequestHeader("Pragma", "no-cache")
WinHTTP.SetRequestHeader("Cache-Control", "no-cache")

WinHTTP.Send("anagram=%D0%B1%D0%B0%D1%82%D0%BD%D0%BE")

MsgBox % WinHTTP.ResponseText

3

Re: AHK: POST Запрос

svoboden, можете объяснить в чем была проблема?

Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

4 (изменено: Malcev, 2019-02-24 14:15:48)

Re: AHK: POST Запрос

FForest, а зачем нужно столько заголовков отправлять?
У меня так работает:

WinHTTP := ComObjCreate("WinHTTP.WinHttpRequest.5.1")
WinHTTP.Open("POST", "https://cepia.ru/service/words/findbyanagram", 0)
WinHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:65.0) Gecko/20100101 Firefox/65.0")
WinHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
WinHTTP.SetRequestHeader("Pragma", "no-cache")
WinHTTP.SetRequestHeader("Cache-Control", "no-cache, no-store")
WinHTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
WinHTTP.Send("anagram=батно")
MsgBox % WinHTTP.ResponseText

5 (изменено: svoboden, 2019-02-24 15:09:48)

Re: AHK: POST Запрос

Phoenixxx_Czar, точно не знаю, я просто сам посмотрел этот сайт и составил свой запрос. Как уже говорили, там много лишних заголовков.

6

Re: AHK: POST Запрос

На самом деле там просто 2 неправильных заголовка.
1) WinHTTP.SetRequestHeader("Content-Type", "application/json")
Хотя джсон не передается.
2) WinHTTP.setRequestHeader("accept-encoding", "gzip, deflate, br")
После этого заголовка сервер возвращает запакованный контент и чтобы его распаковать через ахк нужно использовать zlib.dll либо gzip.dll.

7 (изменено: svoboden, 2019-02-24 15:34:44)

Re: AHK: POST Запрос

Да, еще там ошибка:

WinHTTP.setRequestHeader("ContentType", "application/x-www-form-urlencoded; charset=UTF-8")

тире пропущено.
А в:

WinHTTP.setRequestHeader("accept-encoding", "gzip, deflate, br")

У меня ошибку возвращало "Error 0x80070459".