Код:
$sDomain = 'montytool.ru' ;домен или ip-адрес
$iPort = 80 ;порт
;Запрос, который будет отправлен серверу
$sRequest = 'GET /tasks/check?id=39297/ HTTP/1.1' & @CRLF ;Request-строка, параметры GET-запроса
$sRequest &= 'Accept: */*' & @CRLF
$sRequest &= 'X-Requested-With: XMLHttpRequest' & @CRLF
$sRequest &= 'User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17' & @CRLF
$sRequest &= 'Content-Type: application/x-www-form-urlencoded' & @CRLF
$sRequest &= 'Referer: http://montytool.ru/tasks' & @CRLF
$sRequest &= 'Accept-Encoding: gzip,deflate,sdch' & @CRLF
$sRequest &= 'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4' & @CRLF
$sRequest &= 'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3' & @CRLF
$sRequest &= 'PHPSESSID=lspb98gqnvgth9cef0jc558rq0; user_hash=770bc2afdfcd1e47d59c5557475f6e3c8efd4bc5; _user_id=190405458; _user_hash=770bc2afdfcd1e47d59c5557475f6e3c8efd4bc5' & @CRLF & @CRLF
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', $sData)
Код:
GET /tasks/check?id=39411 HTTP/1.1
Host: montytool.ru
Accept: */*
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17
Content-Type: application/x-www-form-urlencoded
Referer: http://montytool.ru/tasks
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3
Cookie: PHPSESSID=lspb98gqnvgth9cef0jc558rq0; user_hash=770bc2afdfcd1e47d59c5557475f6e3c8efd4bc5; _user_id=190405458; _user_hash=770bc2afdfcd1e47d59c5557475f6e3c8efd4bc5
Код:
{"error_code":2}
Код:
{"error_code":1,"points":"10"}
Помогите,ведь я не столь опытен,как вы.
Заранее спасибо за ответы.