Здравствуйте. Поискав по форуму примеры авторизации на сайте с помощью WinHttp.WinHttpRequest.5.1 наткнулся на казалосьбы понятный и исчерпывающий пример от "CreatoR" http://autoit-script.ru/index.php/topic,3925.15.html#post_inet_3 , а именно:
Попробовал его переделать под свои задачи вот таким образом:
Но в конечном итоге все равно получаю страницу авторизации, подскажите в чем моя ошибка?
PS
Единственное что я не совсем понимаю это метод SetRequestHeader - я так понимаю что в User-Agent мы указываем тип браузера, а в content-type мы указываем форму авторизации. Если не сложно могли бы пояснить еще прав ли я или я неправильно понял?
Код:
$oRequest = ObjCreate('WinHttp.WinHttpRequest.5.1') ;Создаём COM-объект
If @error Then
MsgBox(16, 'Ошибка', 'Ошибка при создании объекта "WinHttp.WinHttpRequest.5.1".')
Exit 1
EndIf
$oErrorHandler = ObjEvent('AutoIt.Error', 'ErrorFunc') ;Создаём обработчик ошибок (COM Error Handling http://www.autoitscript.com/autoit3/docs/intro/ComRef.htm)
Func ErrorFunc()
MsgBox(16, 'Ошибка', $oErrorHandler.description)
Exit 2
EndFunc
$oRequest.Open('POST', 'http://localhost/test/post.php', 0) ;Создаём соеденение, указываем адрес страницы
$oRequest.SetRequestHeader('User-Agent', 'au3browser') ;Указываем заголовок User-Agent
$oRequest.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded') ;Указываем заголовок Content-Type (необходимо для POST-запроса (Content-Length указывается автоматически))
$oRequest.Send('param1=value1¶m2=value2') ;отправляем запрос
$sData = $oRequest.ResponseText
$oErrorHandler = 0 ;выключаем обработчик ошибок
MsgBox(0, 'Data', $sData)
Попробовал его переделать под свои задачи вот таким образом:
Код:
$oRequest = ObjCreate('WinHttp.WinHttpRequest.5.1')
If @error Then
MsgBox(16, 'Ошибка', 'Ошибка при создании объекта "WinHttp.WinHttpRequest.5.1".')
Exit 1
EndIf
$oErrorHandler = ObjEvent('AutoIt.Error', 'ErrorFunc')
Func ErrorFunc()
MsgBox(16, 'Ошибка', $oErrorHandler.description)
Exit 2
EndFunc
$oRequest.Open('POST', 'http://nuvi.ru/private/', 0)
$oRequest.SetRequestHeader('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20100101 Firefox/6.0')
$oRequest.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
$oRequest.Send('USER_LOGIN=Login&USER_PASSWORD=password')
$sData = $oRequest.ResponseText
$oErrorHandler = 0
FileWrite ( "C:\1\PostTest.txt", $sData )
PS
Единственное что я не совсем понимаю это метод SetRequestHeader - я так понимаю что в User-Agent мы указываем тип браузера, а в content-type мы указываем форму авторизации. Если не сложно могли бы пояснить еще прав ли я или я неправильно понял?