#include <Array.au3>
Global $sData, $aData
$sRequest = 'POST /login/get_proflie_id.php HTTP/1.1' & @CRLF ;Request-строка, параметры GET-запроса
$sRequest &= 'Host: turboliker.ru' & @CRLF
$sRequest &= 'Content-Length: 35' & @CRLF
$sRequest &= 'Accept: */*' & @CRLF
$sRequest &= 'Origin: http://turboliker.ru' & @CRLF
$sRequest &= 'X-Requested-With: XMLHttpRequest' & @CRLF
$sRequest &= 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36' & @CRLF
$sRequest &= 'Content-Type: application/x-www-form-urlencoded' & @CRLF
$sRequest &= 'Referer: http://turboliker.ru/' & @CRLF
$sRequest &= 'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4' & @CRLF
$sRequest &= 'Cookie: __cfduid=d6803ff16d54393950ad0c572b48221b41383831371519; PHPSESSID=fsb6esaur8ru7t5l58cbch2n51' & @CRLF & @CRLF
$sRequest &= 'link=http%3A%2F%2Fvk.com%2Fdota_pak' & @CRLF
$sbuf = SendPocket($sRequest, "turboliker.ru", 80, 2) ; $sRequest = запрос, $sHost = хост, $iPort = порт, $iReturn = 1 - заголовки, 2 - тело, 3 - всё.
If IsArray($aData) Then
_ArrayDisplay($aData)
Else
MsgBox(32, 'Info', $sData)
EndIf
Func SendPocket($sRequest, $sHost, $iPort, $iReturn)
If TCPStartup() = 0 Then ;запускаем TCP/UDP-службы
MsgBox(16, 'Ошибка', 'Не удалось запустить TCP/UDP-службы.')
Exit 1
EndIf
$sIP = TCPNameToIP($sHost) ;получаем 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 = Binary('')
$iTimer = TimerInit() ;запускаем таймер
Do
$sBuffer = TCPRecv($iSocket, 1024, 1) ;ДОБАВЛЕНО
$iError = @error
If $sBuffer Then ;ИЗМЕНЕНО
$sData &= BinaryToString($sBuffer, 4) ;ИЗМЕНЕНО
$iTimer = TimerInit() ;обнуляем таймер
EndIf
Until $iError <> 0 Or TimerDiff($iTimer) > 5000 ;если при получении сообщения произошла ошибка (данные получены, соединение закрыто) или в течении 5 секунд ничего не было получено, выход из цикла
TCPCloseSocket($iSocket)
TCPShutdown()
Switch $iReturn
Case 1
$aData = StringRegExp($sData, '(?is)(\S+)?[\:].*?\R', 3)
Return $aData
;~ MsgBox(32, 'Inf', UBound($aData)-1)
;~ For $i = 0 To UBound($aData) - 1
;~ ConsoleWrite($aData[$i] & @LF)
;~ Next
Case 2
$aData = StringRegExp($sData, '(?is).*?[\:]\s+?(.*?)\R', 3)
Return $aData
;~ MsgBox(32, 'Inf', UBound($aData)-1)
;~ For $i = 0 To UBound($aData) - 1
;~ ConsoleWrite($aData[$i] & @LF)
;~ Next
Case 3
Return $sData
;~ MsgBox(32, 'Inf', $sData)
;~ ConsoleWrite($sData & @LF)
EndSwitch
EndFunc ;==>SendPocket