Нашел видео на ЮТуб как реализовать Авторизацию при помощи TCP.
Зделал как описано на видео, и вроде как все работает но понять не могу почему сервер в ответе не присылает кукисы. При проделовании тех же действий только руками в FireFox - сервер выдает куки.
Вопрос Что нужно изменить в запросе POST чтоб сервер выдавал кукисы?
Решение дописать в запрос строку Content-Type: application/x-www-form-urlencoded
Зделал как описано на видео, и вроде как все работает но понять не могу почему сервер в ответе не присылает кукисы. При проделовании тех же действий только руками в FireFox - сервер выдает куки.
Вопрос Что нужно изменить в запросе POST чтоб сервер выдавал кукисы?
Решение дописать в запрос строку Content-Type: application/x-www-form-urlencoded
Код:
'Connection: keep-alive' & @CRLF & _
'Content-Type: application/x-www-form-urlencoded' & @CRLF & _
'Content-Length: ' & StringLen($sPost) & @CRLF & @CRLF & $sPost
Код:
$quellcode = TCPRequest('195.82.146.114','login.rutracker.org','forum/login.php')
FileWrite(@ScriptDir & '\source.html', $quellcode)
Func TCPRequest($sIp, $sHost, $sSite = "", $iMaxTime = 10000)
Local $sPacket, $iSocket, $iTimer, $sPost
$sPost = 'login_username=xxxxxx&login_password=xxxxxx&login=xxxxxxxxxxxx'
$sPacket = 'POST /' & $sSite & ' HTTP/1.1' & @CRLF & _
'Host: ' & $sHost & @CRLF & _
'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12' & @CRLF & _
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' & @CRLF & _
'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3' & @CRLF & _
'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7' & @CRLF & _
'Keep-Alive: 115' & @CRLF & _
'Connection: keep-alive' & @CRLF & _
'Content-Length: ' & StringLen($sPost) & @CRLF & @CRLF & $sPost
TCPStartup()
If @error Then Return SetError(1,0,"")
$iSocket = TCPConnect($sIp, 80)
If @error Then Return SetError(2,0,"")
TCPSend($iSocket, $sPacket)
If @error Then Return SetError(3,0,"")
$iTimer = TimerInit()
Do
$sRecv = TCPRecv($iSocket, 1024)
If TimerDiff($iTimer) > $iMaxTime Then Return SetError(4,0,"")
Until $sRecv <> ""
Do
$sRecv &= TCPRecv($iSocket, 1024)
Until @error Or StringInStr($sRecv, '</html>')
TCPCloseSocket($iSocket)
TCPShutdown()
Return $sRecv
EndFunc
_http://www.youtube.com/profile?user=1AMrK1#p/u/23/Yvn1xkzmfw8