! у меня вопрос по autoit
пытаюсь отправить запрос по TCP но в ответ ни чего не приходит !!!
Текст запросов перехватил сниффером. Через браузер на оба запроса сервер отвечает исправно, а когда посылаю вручную с помощью кода представленого ниже, первый запрос присылает ответ а второй нет!
Вот такой запрос присылает ответ:
а такой нет:
пытаюсь отправить запрос по TCP но в ответ ни чего не приходит !!!
Текст запросов перехватил сниффером. Через браузер на оба запроса сервер отвечает исправно, а когда посылаю вручную с помощью кода представленого ниже, первый запрос присылает ответ а второй нет!
Код:
#include <GUIConstantsEx.au3>
$sDomain = '192.168.46.77' ;домен или ip-адрес
$iPort = 8999 ;порт
$sParameters = 'action=answer&Username=XXX&Domain=mail.ru&Submit_PasswordAnswer=1&answer=***'
;Запрос, который будет отправлен серверу
$sRequest1 = 'POST http://192.168.46.30/SNK/LogOn.aspx HTTP/1.1' & @CRLF ;Request-строка
$sRequest1 &= 'User-Agent: Mozilla/4.0 (Windows XP 5.1) Java/1.6.0_29' & @CRLF
$sRequest1&= 'Host: 192.168.46.30' & @CRLF
$sRequest1 &= 'Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2' & @CRLF
$sRequest1 &= 'Proxy-Connection: keep-alive' & @CRLF ;au3browser' & @CRLF
$sRequest1&= 'Content-type: application/x-www-form-urlencoded' & @CRLF
$sRequest1 &= 'Content-Length: 19' & @CRLF
$sRequest1 &= @CRLF
$sRequest1 &= 'Name=Km&Password=A' & @CRLF ;au3browser' & @CRLF
;Запрос, который будет отправлен серверу
$sRequest = 'GET http://192.168.46.30/SNK/Param.aspx HTTP/1.1' & @CRLF ;Request-строка
$sRequest &= 'User-Agent: Mozilla/4.0 (Windows XP 5.1) Java/1.6.0_29' & @CRLF
$sRequest &= 'Host: 192.168.46.30' & @CRLF
$sRequest &= 'Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2' & @CRLF
$sRequest &= 'Proxy-Connection: keep-alive' & @CRLF ;au3browser' & @CRLF
;MsgBox(1, 'Запрос', "" & $sRequest1 & "")
If TCPStartup() = 0 Then ;запускаем TCP/UDP-службы
MsgBox(16, 'Ошибка', 'Не удалось запустить TCP/UDP-службы.')
Exit 1
EndIf
$MainSocket = TCPListen($sIP, $iPort, 100)
If $MainSocket = -1 Then Exit
$sIP = TCPNameToIP($sDomain) ;получаем ip-адрес
If @error Then
MsgBox(16, 'Ошибка', 'Не удалось получить ip-адрес сервера.')
Exit 2
EndIf
; MsgBox(1, 'Создание завершено', "" & $sIP & "")
$iSocket = TCPConnect($sIP, $iPort) ;соединяемся с сервером
If @error Then
MsgBox(16, 'Ошибка', 'Не удалось соедениться с сервером.')
Exit 3
EndIf
TCPSend($iSocket, $sRequest) ;отправляем сообщение
If @error Then
MsgBox(16, 'Ошибка', 'Не удалось отправить запрос.')
Exit 4
EndIf
Sleep(1000)
ProgressSet( 33, "Этап 1. Регистрация Аккаунта")
$sBuffer3=''
MsgBox(1, 'sBuffer' , "" &$sBuffer3 & "")
$sData = ''
$iTimer = TimerInit() ;запускаем таймер
Do
$sBuffer3 = TCPRecv($iSocket, 1000,0) ;получаем часть сообщения сервера
;MsgBox(1, 'Создание завершено', "" &$iSocket & "")
$iError = @error
MsgBox(1, 'sBuffer' , "" &$sBuffer3 & "")
If Not $sBuffer3 = '' Then ;если удалось получить сообщение
MsgBox(1, 'sBuffer1' , "" &BinaryToString($sBuffer3 ) & "")
$sData &= $sBuffer3 ;сохраняем полученное сообщение
;MsgBox(1, 'Создание !!!!!!!!!!!!', "" &$sData & "")
MsgBox(1, 'Создание завершено', "6")
EndIf
Until $iError <> 0 Or TimerDiff($iTimer) > 10000 ;если при получении сообщения произошла ошибка (данные получены, соединение закрыто) или в течении 5 секунд ничего не было получено, выход из цикла
TCPCloseSocket($iSocket)
TCPShutdown()
;$aData = StringRegExp($sData, '(?s)(.*?)\r\n\r\n(.*)', 3) ;отделяем http-заголовки от тела сообщения ('заголовки' & @CRLF & @CRLF & 'тело')
If @error Then
MsgBox(16, 'Ошибка', 'Полученные данные неверны.')
MsgBox(16, 'Создание завершено', 'Идет подтверждение.')
Sleep(100)
Exit 5
EndIf
Вот такой запрос присылает ответ:
Код:
;Запрос, который будет отправлен серверу
$sRequest1 = 'POST http://192.168.46.30/SNK/LogOn.aspx HTTP/1.1' & @CRLF ;Request-строка
$sRequest1 &= 'User-Agent: Mozilla/4.0 (Windows XP 5.1) Java/1.6.0_29' & @CRLF
$sRequest1&= 'Host: 192.168.46.30' & @CRLF
$sRequest1 &= 'Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2' & @CRLF
$sRequest1 &= 'Proxy-Connection: keep-alive' & @CRLF ;au3browser' & @CRLF
$sRequest1&= 'Content-type: application/x-www-form-urlencoded' & @CRLF
$sRequest1 &= 'Content-Length: 19' & @CRLF
$sRequest1 &= @CRLF
$sRequest1 &= 'Name=Km&Password=A' & @CRLF ;au3browser' & @CRLF
а такой нет:
Код:
;Запрос, который будет отправлен серверу
$sRequest = 'GET http://192.168.46.30/SNK/Param.aspx HTTP/1.1' & @CRLF ;Request-строка
$sRequest &= 'User-Agent: Mozilla/4.0 (Windows XP 5.1) Java/1.6.0_29' & @CRLF
$sRequest &= 'Host: 192.168.46.30' & @CRLF
$sRequest &= 'Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2' & @CRLF
$sRequest &= 'Proxy-Connection: keep-alive' & @CRLF ;au3browser' & @CRLF