Это POST запрос на отправку регистрационной формы на сайт. http://s4.ru.alaplaya.net
Помогите чем сможете.
Писал по примеру: Но чувствую что я ни чего не понимаю в нем :(
Помогите чем сможете.
Код:
POST /users HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap,
application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://s4.ru.alaplaya.net/users/new
Accept-Language: ru-RU
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729;
.NET CLR 3.0.30729; InfoPath.3; .NET4.0C; .NET4.0E)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: s4.ru.alaplaya.net
Content-Length: 451
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: __utma=1.834228154.1317458942.1321347332.1321359881.11; __utmz=1.1318512453.9.9.utmcsr=z.ru|utmccn=(referral)|
utmcmd=referral|utmcct=/forum/showthread.php; PAPVisitorId=261dcfb1166ffe798bd010QjR4yyfdRt;
_alaplaya_session=BAh7BjoPc2Vzc2lvbl9pZCIlZDIwMDljYTU5MTM2M2U0NDE4ZTA3NDc0ZmE4NjA0NTA%3D--
9ee55c29561798457c5c0661ff9fa1fe427e19f3; __utmc=1
user%5Blogin%5D=vevevero&user%5Bpassword%5D=0000&user%5Bpassword_confirmation%5D=0000&user%5Bnickname
%5D=vevevero&user%5Bemail%[email protected]&user%5Bemail_confirmation%[email protected]&user%5Bbirthday%283i
%29%5D=1&user%5Bbirthday%282i%29%5D=1&user%5Bbirthday%281i%29%5D=1970&user%5Bgender%5D=m&user
%5Bcountry_id%5D=36&user%5Bmedia_code_id%5D=8&user%5Bnewsletter%5D=0&user%5Bterms_of_service
%5D=0&user%5Bterms_of_service%5D=1&user%5Busedform%5D=usernew
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 15 Nov 2011 12:22:46 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=60
Vary: Accept-Encoding
Set-Cookie: a_mpl_id=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT
Set-Cookie:
_alaplaya_session=BAh7BzoPc2Vzc2lvbl9pZCIlZDIwMDljYTU5MTM2M2U0NDE4ZTA3NDc0ZmE4NjA0NTA6FmNyZWF0ZV
91c2VyX2VtYWlsaQc%3D--2b7a6b4b0fc555e43532d90f7ea25b8b933c4a96; domain=.alaplaya.net; path=/; HttpOnly
Status: 200
ETag: "f9c5ad24703a10a76e81146d524c22cc"
X-Runtime: 2886
Cache-Control: private, max-age=0, must-revalidate
Content-Encoding: gzip
Код:
$sDomain = '195.122.162.50' ;домен или ip-адрес
$iPort = 80 ;порт
$sParameters = 'param1=value1¶m2=value2' ;Параметры
;Запрос, который будет отправлен серверу
$sRequest = 'POST /users HTTP/1.1' & @CRLF ;Request-строка
;$sRequest &= 'Connection: close' & @CRLF ;Заголовки
$sRequest &= 'Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*' & @CRLF
;$sRequest &= 'x-prototype-version: 1.7' & @CRLF
$sRequest &= 'Referer: http://s4.ru.alaplaya.net/users/new' & @CRLF
$sRequest &= 'Accept-Language: ru-RU' & @CRLF
$sRequest &= 'User-Agent: au3browser' & @CRLF
;$sRequest &= 'x-requested-with: XMLHttpRequest' & @CRLF
$sRequest &= 'Content-Type: application/x-www-form-urlencoded' & @CRLF ;Указываем заголовок Content-Type (необходимо для POST-запроса)
$sRequest &= 'Accept-Encoding: gzip, deflate' & @CRLF
$sRequest &= 'Host: s4.ru.alaplaya.net' & @CRLF
$sRequest &= 'Content-Length: 451 ' & StringLen($sParameters) & @CRLF ;Указываем заголовок Content-Length (необходимо для POST-запроса)
$sRequest &= 'Connection: Keep-Alive' & @CRLF
$sRequest &= 'Cache-Control: no-cache' & @CRLF
$sRequest &= 'Cookie:__utma=1.834228154.1317458942.1321347332.1321359881.11; __utmz=1.1318512453.9.9.utmcsr=zhyk.ru|utmccn=(referral)|utmcmd=referral|utmcct=/forum/showthread.php; PAPVisitorId=261dcfb1166ffe798bd010QjR4yyfdRt; _alaplaya_session=BAh7BjoPc2Vzc2lvbl9pZCIlZDIwMDljYTU5MTM2M2U0NDE4ZTA3NDc0ZmE4NjA0NTA%3D--9ee55c29561798457c5c0661ff9fa1fe427e19f3; __utmc=1 user%5Blogin%5D='&GUICtrlRead($Input1)&'&user%5Bpassword%5D='&GUICtrlRead($Input2)&'&user%5Bpassword_confirmation%5D='&GUICtrlRead($Input2)&'&user%5Bnickname%5D='&GUICtrlRead($Input1)&'&user%5Bemail%5D='&GUICtrlRead($Input5)&'&user%5Bemail_confirmation%5D='&GUICtrlRead($Input5)&'&user%5Bbirthday%283i%29%5D='&GUICtrlRead($Combo1)&'&user%5Bbirthday%282i%29%5D='&GUICtrlRead($Combo2)&'&user%5Bbirthday%281i%29%5D='&GUICtrlRead($Combo3)&'&user%5Bgender%5D=m&user%5Bcountry_id%5D=36&user%5Bmedia_code_id%5D=8&user%5Bnewsletter%5D=0&user%5Bterms_of_service%5D=0&user%5Bterms_of_service%5D=1&user%5Busedform%5D=usernew' & @CRLF
$sRequest &= @CRLF ;Заголовки от параметров отделяет пустая строка
$sRequest &= $sParameters ;Параметры в запросе
If TCPStartup() = 0 Then ;запускаем TCP/UDP-службы
MsgBox(16, 'Ошибка', 'Не удалось запустить TCP/UDP-службы.')
Exit 1
EndIf
$sIP = TCPNameToIP($sDomain) ;получаем ip-адрес
If @error Then
MsgBox(16, 'Ошибка', 'Не удалось получить ip-адрес сервера.')
Exit 2
EndIf
$iSocket = TCPConnect($sIP, $iPort) ;соединяемся с сервером
If @error Then
MsgBox(16, 'Ошибка', 'Не удалось соедениться с сервером.')
Exit 3
EndIf
TCPSend($iSocket, $sRequest) ;отправляем сообщение
If @error Then
MsgBox(16, 'Ошибка', 'Не удалось отправить запрос.')
Exit 4
EndIf
$sData = ''
$iTimer = TimerInit() ;запускаем таймер
Do
$sBuffer = TCPRecv($iSocket, 1024) ;получаем часть сообщения сервера
$iError = @error
If Not $sBuffer = '' Then ;если удалось получить сообщение
$sData &= $sBuffer ;сохраняем полученное сообщение
$iTimer = TimerInit() ;обнуляем таймер
EndIf
Until $iError <> 0 Or TimerDiff($iTimer) > 5000 ;если при получении сообщения произошла ошибка (данные получены, соединение закрыто) или в течении 5 секунд ничего не было получено, выход из цикла
TCPCloseSocket($iSocket)
TCPShutdown()
$aData = StringRegExp($sData, '(?s)(.*?)\r\n\r\n(.*)', 3) ;отделяем http-заголовки от тела сообщения ('заголовки' & @CRLF & @CRLF & 'тело')
If @error Then
MsgBox(16, 'Ошибка', 'Полученные данные неверны.')
Exit 5
EndIf
MsgBox(0, 'Data', $aData[1])
EndIf
WEnd