Тема: AHK: WinHTTPRequest
Добрый день. Не удается понять причину, по которой обрывается скачивание для файлов размером больше 20 МБ. Есть два файла по следующим двум ссылкам -
https://view.nebdeti.ru/web/viewer.html?item_id=ea8497ee-4d5a-49f0-8a29-c60fdc2dcd60
https://view.nebdeti.ru/web/viewer.html?item_id=67093957-673b-4871-9aff-41b237f8732a
Первый скачивается нормально, так как он небольшой (3 мб), а второй загружается битым примерно на 20-ти мегабайтах, хотя в браузере видно, что он прогружается полностью. И это относится к попытке скачивания любых файлов этого сайта.
В коде приведены две ссылки - незакомментированная переменная "page_id" по умолчанию скачивает небольшой файл, а закоментированная - 40-мегабайтный.
HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
page_id := "ea8497ee-4d5a-49f0-8a29-c60fdc2dcd60"
;page_id := "67093957-673b-4871-9aff-41b237f8732a"
page_link := "https://nebdeti.ru/viewer/item.php?id=" page_id
HTTP.Open("GET", page_link, 1)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36")
HTTP.SetRequestHeader("Pragma", "no-cache")
;HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.SetRequestHeader("scheme", "https")
HTTP.SetRequestHeader("accept", "*/*")
;HTTP.SetRequestHeader("accept-encoding", "gzip, deflate, br")
HTTP.SetRequestHeader("accept-language", "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7")
HTTP.SetRequestHeader("origin", "https://view.nebdeti.ru")
HTTP.SetRequestHeader("referer", page_link)
HTTP.SetRequestHeader("sec-ch-ua", """ Not A;Brand"";v=""99"", ""Chromium"";v=""102""")
HTTP.SetRequestHeader("sec-ch-ua-mobile", "?0")
HTTP.SetRequestHeader("sec-ch-ua-platform", """Windows""")
HTTP.SetRequestHeader("sec-fetch-dest", "empty")
HTTP.SetRequestHeader("sec-fetch-mode", "cors")
HTTP.SetRequestHeader("sec-fetch-site", "cross-site")
HTTP.SetRequestHeader("cookie", "test-cookie=1")
HTTP.Send()
HTTP.WaitForResponse()
Body := HTTP.ResponseBody
pData := NumGet(ComObjValue(Body), A_PtrSize = 8? 16:12, "ptr")
File := FileOpen(A_ScriptDir "\" page_id " " a_now ".pdf", "w")
File.RawWrite(pData + 0, Body.MaxIndex() + 1)
File.Close()
return