76

Re: AHK: Скачивание через GET/POST-запросы

Могу только повторить, что написал в 72 посте.

77

Re: AHK: Скачивание через GET/POST-запросы

Получается, с UrlDownloadToFile успешную загрузку нельзя выявить? Тогда лучше WinHttpRequest использовать, или проверять по FileExist после отработки UrlDownloadToFile ?

78

Re: AHK: Скачивание через GET/POST-запросы

Так файл будет существовать, только не исо, а со страницей 404.
У вас же в функции проверяются хедеры:

    Info := HttpQueryInfo(Location, 22)  
    RegexMatch(Info, "i).*? (.*?)\R", stat)
    If !InStr(stat1, "200 OK")
        Return "Error: " stat1

Вы понимаете по какому алгоритму работает код?

79 (изменено: DD, 2018-09-28 22:13:05)

Re: AHK: Скачивание через GET/POST-запросы

Я имел в виду не ситуацию со страницей 404, а когда например изоб. не сохранилось из-за недопустимой длины, например, или потому что соединение ненадолго прервалось. В этом случае проверка существования сработает? Некоторое представление по алгоритму есть)).

80

Re: AHK: Скачивание через GET/POST-запросы

По идее должно, но надо проверять.

81

Re: AHK: Скачивание через GET/POST-запросы

Ок, спасибо.

82

Re: AHK: Скачивание через GET/POST-запросы

Баги:

url := "http://counter.yadro.ru/hit?t44.6;rhttps%3A//www.google.com/;s1920*1080*24;uhttp%3A//aydenfamilydentistry.com/viewtopic.php%3Ft%3D953254;h%u0414%u043E%u0441%u0442%u0443%u043F%20%u043A%20%u0434%u0430%u043D%u043D%u043E%u043C%u0443%20%u043C%u0430%u0442%u0435%u0440%u0438%u0430%u043B%u0443%20%u043E%u0433%u0440%u0430%u043D%u0438%u0447%u0435%u043D%20%u043F%u0440%u0430%u0432%u043E%u043E%u0431%u043B%u0430%u0434%u0430%u0442%u0435%u043B%u0435%u043C.;0.17554469522970428"
url := "https://vignette.wikia.nocookie.net/madmen/images/c/cf/002.jpg.php_229x344.jpg/revision/latest?cb=20100806000458"

83 (изменено: DD, 2018-09-29 11:42:07)

Re: AHK: Скачивание через GET/POST-запросы

Вот так gif теперь обрабатывается, — но почему не с jpg?

#SingleInstance Force

Global Dir4Pics := "C:\Tmp\"
url_lst = 
(
https://vignette.wikia.nocookie.net/madmen/images/c/cf/002.jpg.php_229x344.jpg/revision/latest?cb=20100806000458
http://counter.yadro.ru/hit?t44.6;rhttps`%3A//www.google.com/;s1920*1080*24;uhttp`%3A//aydenfamilydentistry.com/viewtopic.php`%3Ft`%3D953254;h`%u0414`%u043E`%u0441`%u0442`%u0443`%u043F`%20`%u043A`%20`%u0434`%u0430`%u043D`%u043D`%u043E`%u043C`%u0443`%20`%u043C`%u0430`%u0442`%u0435`%u0440`%u0438`%u0430`%u043B`%u0443`%20`%u043E`%u0433`%u0440`%u0430`%u043D`%u0438`%u0447`%u0435`%u043D`%20`%u043F`%u0440`%u0430`%u0432`%u043E`%u043E`%u0431`%u043B`%u0430`%u0434`%u0430`%u0442`%u0435`%u043B`%u0435`%u043C.;0.17554469522970428
)

Loop, parse, url_lst, `n
{
ths := A_LoopField
url_lst := Download(ths) 
}
Return

Download(Location)
{
    Global Path, FullSize, KBSize 
    Info := HttpQueryInfo(Location, 22)  
    RegexMatch(Info, "i).*? (.*?)\R", stat)
    If !InStr(stat1, "200 OK")
        Return "Error: " stat1
    RegexMatch(Info, "i)\RContent-Disposition: .*?filename=""(?<D>.*?)""", C) 
    If CD !=  
        Path := CD
    Else
    { 
        SplitPath, Location, FileName, , Ext, NameNoExt 
        RegexMatch(Info, "i)\RContent-Type: (.*?/(.*?))\R", CT)
MsgBox %Info%`n`n%CT%  			;!!add
        RegRead, ExtMIME, HKEY_CLASSES_ROOT, MIME\Database\Content Type\%CT1%, Extension
        If (ExtMIME != "")
        {
            Path := NameNoExt ExtMIME
;thsExt := ExtMIME
            SplitPath, Path, , , thsExt,  	;!!add
            ;MsgBox 1 %thsExt%  			;!!add
        }
        Else If (Ext = "" && CT2 != "")
        {

            CT2:=RegExReplace(CT2,"^(.*?)(`; charset=utf-8)?$", "$1")
            Path := NameNoExt "." CT2
            MsgBox 2 %Path%
        }
        Else
        {
            Path := FileName
            MsgBox 3`n %Path%`n%thsExt%
        }
    }
    If !Path
        Return "Error: Path not found"  
    RegexMatch(Info, "i)\RContent-Length: (?<L>.*?)\R", C), FullSize := CL
    Path := Dir4Pics Path ;!!
    ;!!MsgBox % Path "`n`n" Location "`n`n" KBSize := Floor(FullSize/1024) "KB"
    ;!!SetTimer, GetSize, 100 

    StringReplace, Path, Path, ?, _, All  	;!!add
    Location2 := Location "." thsExt  		;!!add
    Location2 := ValidName(Location2)  		;!!add
    ;MsgBox 3 %Location2%  			;!!add

    If NOT FileExist(Dir4Pics Location2)
    {
        UrlDownloadToFile, %Location%, %Dir4Pics%%Location2%
        If NOT FileExist(Dir4Pics Location2)
            msgbox %Location% not dwn
    }

    StringReplace, Location2, Location2, `n, , All
    StringReplace, all, all, src="%Location%", src="pic/%Location2%", All

    ;!!SetTimer, GetSize, -1
    ;!!Progress, Hide
    Return "Complete"
}

GetSize: 
    FSize := FileOpen(Path, "r").Length 
    Percent := Floor((FSize / FullSize) * 100)  
    Progress, %Percent%, %Percent%`% Complete, Downloading... 
        , % Floor(FSize/1024) "KB / " KBSize " || " Path 
    Return
 

HttpQueryInfo(URL, QueryInfoFlag=21, Proxy="", ProxyBypass="")
{
   hModule := DllCall("LoadLibrary", "str", "wininet.dll", Ptr)
   AccessType := Proxy = "" ? 1 : 3
   
   Loop 1
   {
      Error := 1
      if !io_hInternet := DllCall("wininet\InternetOpen", "str", "", "uint", AccessType, "str", Proxy, "str", ProxyBypass, "uint", 0, Ptr) ;dwFlags
         break
      
      if !iou_hInternet := DllCall("wininet\InternetOpenUrl", Ptr, io_hInternet, "str", url, "str", "", "uint", 0, "uint", 0x80000000, "uint", 0)
         break
      
      VarSetCapacity(buffer_len, 4, 0) 
      Loop
      {         
         if A_Index = 3
            break 2
         
         VarSetCapacity(buffer, NumGet(&buffer_len+0, "UInt"))
         hqi := DllCall("wininet\HttpQueryInfo", Ptr, iou_hInternet, "uint", QueryInfoFlag, Ptr, &buffer, Ptr, &buffer_len, "uint", 0)
      } Until hqi
      Error := ""
   }
   
   DllCall("wininet\InternetCloseHandle",  Ptr, iou_hInternet)
   DllCall("wininet\InternetCloseHandle",  Ptr, io_hInternet)
   DllCall("FreeLibrary", Ptr, hModule)
   
   Return, Error ? -1 : StrGet(&buffer)
}

ValidName(n,r="")
{
    ;;n:=RegExReplace(n,"(:|;|,|\*|\?|\\|/|<|>|"")"," ")
    n:=RegExReplace(n,"(https?://)","")
    n:=RegExReplace(n,"(\.\w+)\1$","$1")
    n:=RegExReplace(n,"(:|\\)","-")
    n:=RegExReplace(n,"(/)","=")
    n:=RegExReplace(n,"(,|\*|\?|<|>)","_")
    n:=RegExReplace(n,"(;|"")","'")
    n:=RegExReplace(n,"\s+"," ")
    StringReplace n, n, |, -, All

    StrLen(n)
    if n > 150
    {
        n:=RegExReplace(n,"^(.{100,120}).*(\.\w+)$","$1$2")
        ;n:=n thsExt
    }
    If r
        StringReplace n, n, % " ", % r, All
    return Trim(n)
}

84

Re: AHK: Скачивание через GET/POST-запросы

Оригинальный код скачивает нормально - значит проблема в вашей модернизации.

85

Re: AHK: Скачивание через GET/POST-запросы

Теперича работает)). Код получает расширение и дописывает его к сохраняемому изображению (которому вместо оригинального имени назначается полное имя ссылки на него) перед этим проверяя на существование —

#SingleInstance Force

Global Dir4Pics := "C:\Tmp\"
url_lst = 
(
https://vignette.wikia.nocookie.net/madmen/images/c/cf/002.jpg.php_229x344.jpg/revision/latest?cb=20100806000458
http://counter.yadro.ru/hit?t44.6;rhttps`%3A//www.google.com/;s1920*1080*24;uhttp`%3A//aydenfamilydentistry.com/viewtopic.php`%3Ft`%3D953254;h`%u0414`%u043E`%u0441`%u0442`%u0443`%u043F`%20`%u043A`%20`%u0434`%u0430`%u043D`%u043D`%u043E`%u043C`%u0443`%20`%u043C`%u0430`%u0442`%u0435`%u0440`%u0438`%u0430`%u043B`%u0443`%20`%u043E`%u0433`%u0440`%u0430`%u043D`%u0438`%u0447`%u0435`%u043D`%20`%u043F`%u0440`%u0430`%u0432`%u043E`%u043E`%u0431`%u043B`%u0430`%u0434`%u0430`%u0442`%u0435`%u043B`%u0435`%u043C.;0.17554469522970428
https://z-p3-external-frx5-1.xx.fbcdn.net/safe_image.php?d=AQDNtaXtIxXNdOk8&w=112&h=112&url=https`%3A`%2F`%2Fcdn4.telesco.pe`%2Ffile`%2Ficlic5-5hYm9zK7LmfXDDUm_SwCbeP5eNqJqS71hmG6m_Fg9xs2pO6mu26AgIx32mTE3lOUWFsOMNnYykS4nmi1x5_8M0qU3gVLYb2Z7g8eCVIbkoWtZ9zONkZdMz5uVstWfGOtXZCTXBoGni7ciH23w9UmCXs_pBmuFToygAa4MpLkF50I7amNev_pufp6YWLaovhoeHyzDmPNzkJHegDC0NP6kuwR-VRzkTRiSEpmD9leZZ0iNYL7DPNz-MZEQzGMG74eTpiDpOMd90771yPe5ST8vVaI6bGiWm4VW5v3BhNXK5GZZo0uQB27j21rpf5GIHBYIQc_Fysg04Ro2TA.jpg&cfs=1&jq=75&ext=jpg&_nc_hash=AQAdWxR5TYn3Ww8p
https://z-p3-static.xx.fbcdn.net/rsrc.php/v3/y8/r/sEX739EOBGI.png
https://z-p3-external-frt3-2.xx.fbcdn.net/safe_image.php?d=AQCD1xocR0u8pGcr&w=56&h=56&url=https`%3A`%2F`%2Fi.ytimg.com`%2Fvi`%2FohApS9e56z8`%2Fhqdefault.jpg&cfs=1&jq=75&sx=33&sy=0&sw=360&sh=360&ext=jpg&_nc_hash=AQDTIEG1tWbIB793
;https://docs.google.com/document/d/1jhW6J2gCY1eMO7p4nUto0Yn7Z5SWOFL2rNs6V5ZC7D8/
)

Loop, parse, url_lst, `n
{
    ths := A_LoopField
    url_lst := Download(ths) 
}
Return

Download(Location)
{
    Global Path ;, FullSize, KBSize 
    Info := HttpQueryInfo(Location, 22)  
    RegexMatch(Info, "i).*? (.*?)\R", stat)
    If !InStr(stat1, "200 OK")
        Return "Error: " stat1
    ;;RegexMatch(Info, "i)\RContent-Disposition: .*?filename=""(?<D>.*?)""", C) 
    ;;If CD !=  
    ;;    Path := CD
    ;;Else
    { 
        SplitPath, Location, FileName, , Ext, NameNoExt 
        RegexMatch(Info, "i)\RContent-Type: (.*?/(.*?))\R", CT)
        RegRead, ExtMIME, HKEY_CLASSES_ROOT, MIME\Database\Content Type\%CT1%, Extension
        If (ExtMIME != "")
        {
            Path := NameNoExt ExtMIME
            SplitPath, Path, , , thsExt,  	;!!add
            ;MsgBox 1 %thsExt%  			;!!add
        }
        Else If (Ext = "" && CT2 != "")
        {

            CT2:=RegExReplace(CT2,"^(.*?)(`; charset=utf-8)?$", "$1")
            Path := NameNoExt "." CT2
            ;MsgBox 2 %Path%
        }
        Else
        {
            Path := FileName
            ;MsgBox 3`n %Path%`n%thsExt%
        }
    }
    If !Path
        Return "Error: Path not found"  


    ;;RegexMatch(Info, "i)\RContent-Length: (?<L>.*?)\R", C), FullSize := CL
    ;MsgBox 2) %Path%
    ;;Path := Dir4Pics Path ;!!

    ;!!MsgBox % Path "`n`n" Location "`n`n" KBSize := Floor(FullSize/1024) "KB"
    ;!!SetTimer, GetSize, 100 

    StringReplace, Path, Path, ?, _, All  	;!!add
    Location2 := Location "." thsExt  		;!!add
    Location2 := ValidName(Location2)  		;!!add
    ;MsgBox 3 %Location2%  			;!!add
    If NOT FileExist(Dir4Pics Location2)
    {
        UrlDownloadToFile, %Location%, %Dir4Pics%%Location2%
        If NOT FileExist(Dir4Pics Location2)
            msgbox %Location% not dwn
    }

    StringReplace, Location2, Location2, `n, , All
    StringReplace, all, all, src="%Location%", src="pic/%Location2%", All

    ;!!SetTimer, GetSize, -1
    ;!!Progress, Hide
    Return "Complete"
}

GetSize: 
    FSize := FileOpen(Path, "r").Length 
    Percent := Floor((FSize / FullSize) * 100)  
    Progress, %Percent%, %Percent%`% Complete, Downloading... 
        , % Floor(FSize/1024) "KB / " KBSize " || " Path 
    Return
 

HttpQueryInfo(URL, QueryInfoFlag=21, Proxy="", ProxyBypass="")
{
   hModule := DllCall("LoadLibrary", "str", "wininet.dll", Ptr)
   AccessType := Proxy = "" ? 1 : 3
   
   Loop 1
   {
      Error := 1
      if !io_hInternet := DllCall("wininet\InternetOpen", "str", "", "uint", AccessType, "str", Proxy, "str", ProxyBypass, "uint", 0, Ptr) ;dwFlags
         break
      
      if !iou_hInternet := DllCall("wininet\InternetOpenUrl", Ptr, io_hInternet, "str", url, "str", "", "uint", 0, "uint", 0x80000000, "uint", 0)
         break
      
      VarSetCapacity(buffer_len, 4, 0) 
      Loop
      {         
         if A_Index = 3
            break 2
         
         VarSetCapacity(buffer, NumGet(&buffer_len+0, "UInt"))
         hqi := DllCall("wininet\HttpQueryInfo", Ptr, iou_hInternet, "uint", QueryInfoFlag, Ptr, &buffer, Ptr, &buffer_len, "uint", 0)
      } Until hqi
      Error := ""
   }
   
   DllCall("wininet\InternetCloseHandle",  Ptr, iou_hInternet)
   DllCall("wininet\InternetCloseHandle",  Ptr, io_hInternet)
   DllCall("FreeLibrary", Ptr, hModule)
   
   Return, Error ? -1 : StrGet(&buffer)
}

ValidName(n,r="")
{
    ;;n:=RegExReplace(n,"(:|;|,|\*|\?|\\|/|<|>|"")"," ")
    n:=RegExReplace(n,"(https?://)","")
    n:=RegExReplace(n,"(\.\w+)\1$","$1")
    n:=RegExReplace(n,"(:|\\)","-")
    n:=RegExReplace(n,"(/)","=")
    n:=RegExReplace(n,"(,|\*|\?|<|>)","_")
    n:=RegExReplace(n,"(;|"")","'")
    n:=RegExReplace(n,"\s+"," ")
    StringReplace n, n, |, -, All

    StrLen(n)
    if n > 150
    {
        n:=RegExReplace(n,"^(.{100,120}).*(\.\w+)$","$1$2")
        ;n:=n thsExt
    }
    If r
        StringReplace n, n, % " ", % r, All
    return Trim(n)
}

86

Re: AHK: Скачивание через GET/POST-запросы

В функции ValidName() — длинное имя обрезается, но лучше обрабатывать исходя из формата ссылок конкретного сайта.

87

Re: AHK: Скачивание через GET/POST-запросы

http://forum.script-coding.com/viewtopi … 44#p128944

+ DD

88

Re: AHK: Скачивание через GET/POST-запросы

Как правильно скачать pdf-файл?

HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
HTTP.Open("GET", "http://astreya-region.ru/files/64.pdf", true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache, no-store")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.Send()
HTTP.WaitForResponse()
ResponseText := HTTP.ResponseText
fileappend, %ResponseText%, %A_ScriptDir%\64.pdf

89

Re: AHK: Скачивание через GET/POST-запросы

URLDownloadToFile?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

90

Re: AHK: Скачивание через GET/POST-запросы

Хотелось через GET-запросы, так как URLDownloadToFile качает файлы частями на диск, а не сначала полностью в память. Но если иначе нельзя — делать нечего.

91

Re: AHK: Скачивание через GET/POST-запросы

HTTP.WaitForResponse()
Body := HTTP.ResponseBody
pData := NumGet(ComObjValue(Body), A_PtrSize = 8? 16:12, "ptr")
File := FileOpen("64.pdf", "w")
File.RawWrite(pData + 0, Body.MaxIndex() + 1)
+ DD

92 (изменено: teadrinker, 2018-11-26 04:39:25)

Re: AHK: Скачивание через GET/POST-запросы

А что, есть отличие от любого другого файла? В этой теме же обсуждалось уже.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

93 (изменено: DD, 2018-12-26 11:31:51)

Re: AHK: Скачивание через GET/POST-запросы

По какой причине из-за специфического символа Юникода не происходит скачивание страницы? —

HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")

HTTP.Open("GET", "https://www.livejournal.com/__rpc_get_thread?journal=v-sidorov&itemid=310165&flat=&skip=&media=&expand_all=1&page=0", true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache, no-store")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.Send()
HTTP.WaitForResponse()
ResponseText := HTTP.ResponseText

msgbox % ResponseText

94

Re: AHK: Скачивание через GET/POST-запросы

Так происходит:

HTTP := ComObjCreate("Msxml2.XMLHTTP")
HTTP.Open("GET", "https://www.livejournal.com/__rpc_get_thread?journal=v-sidorov&itemid=310165&flat=&skip=&media=&expand_all=1&page=0&" . A_TickCount, false)
HTTP.Send()
ResponseText := HTTP.ResponseText
MsgBox, % ResponseText
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg
+ DD

95 (изменено: DD, 2018-12-26 14:15:24)

Re: AHK: Скачивание через GET/POST-запросы

Спасибо!
Стало интересно, каково назначение " . A_TickCount" в ссылке и для чего используется "false"/"Msxml2.XMLHTTP" — вместо "true"/"WinHTTP.WinHTTPRequest.5.1"? Можно ли всегда скачивать с такими изменениями?

96 (изменено: teadrinker, 2018-12-26 14:31:26)

Re: AHK: Скачивание через GET/POST-запросы

При использовании WinHTTP.WinHTTPRequest.5.1 ответы, насколько я знаю, не кешируются, в случае же Msxml2.XMLHTTP можно получить результат из кеша, если адрес тот же самый, а завершающее рандомное число решает эту проблему. false/true — синхронный/асинхронный запрос, смотря что нужно, в данном случае объём информации небольшой, так что в асинхронном особо нет смысла.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

97 (изменено: DD, 2018-12-26 14:50:02)

Re: AHK: Скачивание через GET/POST-запросы

Ясно. А вот как для того же кода отловить ошибку, чтобы в случае проблемы скачивалось по предложенному Вами образцу, с задействованным кэшем и т.п.? —

HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")

HTTP.Open("GET", "https://www.livejournal.com/__rpc_get_thread?journal=v-sidorov&itemid=310165&flat=&skip=&media=&expand_all=1&page=0", true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache, no-store")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.Send()
HTTP.WaitForResponse()
If ErrorLevel
   msgbox
else
   ResponseText := HTTP.ResponseText

98

Re: AHK: Скачивание через GET/POST-запросы

HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")

HTTP.Open("GET", "https://www.livejournal.com/__rpc_get_thread?journal=v-sidorov&itemid=310165&flat=&skip=&media=&expand_all=1&page=0", true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache, no-store")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.Send()
HTTP.WaitForResponse()
status := HTTP.status
if status not in 200,304
{
   MsgBox, Статус: %status%
   Return
}
try ResponseText := HTTP.ResponseText
catch  {
   MsgBox, Error
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg
+ DD

99

Re: AHK: Скачивание через GET/POST-запросы

DD пишет:

По какой причине из-за специфического символа Юникода не происходит скачивание страницы?

Видимо из-за кривого алгоритма метода ResponseText.

HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")

HTTP.Open("GET", "https://www.livejournal.com/__rpc_get_thread?journal=v-sidorov&itemid=310165&flat=&skip=&media=&expand_all=1&page=0", true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache, no-store")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.Send()
HTTP.WaitForResponse()
Body := HTTP.ResponseBody
pData := NumGet(ComObjValue(Body)+8+A_PtrSize)
ResponseText := StrGet(pData, Body.MaxIndex() + 1, "utf-8")

msgbox % ResponseText

100

Re: AHK: Скачивание через GET/POST-запросы

Malcev, а зачем тут

HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache, no-store")

нужно? Что они дают?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg