Что нового

[Сеть, интернет] Проблема с отправкой POST запроса.

Gzzk

Новичок
Сообщения
104
Репутация
1
Здравствуйте.
Требуется отправить такой запрос:
Код:
POST /ajax/dig.php HTTP/1.1
Host: pikabu.ru
Content-Length: 18
Accept: application/json, text/javascript, */*; q=0.01
Origin: http://pikabu.ru
X-Csrf-Token: i0cvrh05eo20qpeai6n9kavij1atqlo0
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
Content-Type: application/x-www-form-urlencoded
Referer: http://pikabu.ru/new
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: promo_block=1; promo_block2=1; button_help=1; box_shadow=-1; is_scrollmode=0; nps7s=95732; PHPSESS=i0cvrh05eo20qpeai6n9kavij1atqlo0; phpDug=a%3A4%3A%7Bs%3A3%3A%22uid%22%3Bi%3A303602%3Bs%3A8%3A%22username%22%3Bs%3A7%3A%22Bobryak%22%3Bs%3A3%3A%22rem%22%3Bs%3A32%3A%22e811dfbfe34f4fa936264aae8c034797%22%3Bs%3A5%3A%22tries%22%3Bi%3A0%3B%7D; nocache=1; joyride=ridden; user_param=a%3A2%3A%7Bs%3A16%3A%22default_hot_view%22%3Bi%3A0%3Bs%3A16%3A%22default_com_view%22%3Bi%3A1%3B%7D; __utma=43320484.2108076326.1362400770.1367814478.1367838922.360; __utmb=43320484.52.10.1367838922; __utmc=43320484; __utmz=43320484.1367319654.327.6.utmcsr=vk.com|utmccn=(referral)|utmcmd=referral|utmcct=/feed; visited_news=

i=1224826&type=%2B
Насколько я понял,это будет выглядеть вот так:
Код:
$sDomain = 'pikabu.ru' ;домен или ip-адрес
$iPort = 80 ;порт
;Запрос, который будет отправлен серверу
$sRequest = 'POST /ajax/dig.php HTTP/1.1' & @CRLF
$sRequest &= 'Host: pikabu.ru' & @CRLF
$sRequest &= 'Content-Length: 18' & @CRLF
$sRequest &= 'Accept: application/json, text/javascript, */*; q=0.01' & @CRLF
$sRequest &= 'Origin: http://pikabu.ru' & @CRLF
$sRequest &= 'X-Csrf-Token: i0cvrh05eo20qpeai6n9kavij1atqlo0' & @CRLF
$sRequest &= 'X-Requested-With: XMLHttpRequest' & @CRLF
$sRequest &= 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31' & @CRLF
$sRequest &= 'Content-Type: application/x-www-form-urlencoded' & @CRLF
$sRequest &= 'Referer: http://pikabu.ru/new' & @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 &= 'Cookie: promo_block=1; promo_block2=1; button_help=1; box_shadow=-1; is_scrollmode=0; nps7s=95732; PHPSESS=i0cvrh05eo20qpeai6n9kavij1atqlo0; phpDug=a%3A4%3A%7Bs%3A3%3A%22uid%22%3Bi%3A303602%3Bs%3A8%3A%22username%22%3Bs%3A7%3A%22Bobryak%22%3Bs%3A3%3A%22rem%22%3Bs%3A32%3A%22e811dfbfe34f4fa936264aae8c034797%22%3Bs%3A5%3A%22tries%22%3Bi%3A0%3B%7D; nocache=1; joyride=ridden; user_param=a%3A2%3A%7Bs%3A16%3A%22default_hot_view%22%3Bi%3A0%3Bs%3A16%3A%22default_com_view%22%3Bi%3A1%3B%7D; __utma=43320484.2108076326.1362400770.1367814478.1367838922.360; __utmb=43320484.27.10.1367838922; __utmc=43320484; __utmz=43320484.1367319654.327.6.utmcsr=vk.com|utmccn=(referral)|utmcmd=referral|utmcct=/feed; visited_news=' & @CRLF
$sRequest &= @CRLF 
$sRequest &= 'i='&$i&'&type=%2B' 	
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()
ConsoleWrite($sData&@CRLF)

Однако ответ я получаю совсем уж непонятный:
Код:
0x485454502F312E3120323030204F4B0D0A5365727665723A206E67696E780D0A446174653A204D6F6E2C203036204D617920323031332031363A30373A353720474D540D0A436F6E74656E742D547970653A20746578742F68746D6C3B20636861727365743D77696E646F77732D313235310D0A436F6E74656E742D4C656E6774683A2032300D0A436F6E6E656374696F6E3A206B6565702D616C6976650D0A582D506F77657265642D42793A205048502F352E332E332D372B73717565657A6531350D0A457870697265733A205468752C203031204A616E20313937302030303A30303A303120474D540D0A43616368652D436F6E74726F6C3A206E6F2D63616368650D0A507261676D613A206E6F2D63616368650D0A566172793A204163636570742D456E636F64696E670D0A436F6E74656E742D456E636F64696E673A20677A69700D0A0D0A1F8B080000000000000303000000000000000000
Что я делаю неправильно?
Заранее благодарен за ответы.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Gzzk,
Уберите эту строку
Код:
;...
$sRequest &= 'Accept-Encoding: gzip,deflate,sdch' & @CRLF
;...
 
Верх