Что нового

Проблема с POST-запросом на сайт Укрзалізниці

Alexander

Новичок
Сообщения
105
Репутация
2
Хочу реализовать проверку количества мест, доступного для бронирования, на поезд через сайт Укрзалізниці.

Через Хром удалось получить:
Request URL:http://booking.uz.gov.ua/purchase/search/
Request Method:blum:OST
Status Code:200 OK

Request Headers:
POST /purchase/search/ HTTP/1.1
Host: booking.uz.gov.ua
Connection: keep-alive
Content-Length: 214
GV-Token: 9820065b6b996ee4b81e29f485f86b8e
Origin: http://booking.uz.gov.ua
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
Content-Type: application/x-www-form-urlencoded
GV-Unique-Host: 1
GV-Referer-Src: http://www.uz.gov.ua/
GV-Ajax: 1
GV-Screen: 1366x768
GV-Referer: http://booking.uz.gov.ua/
Accept: */*
Referer: http://booking.uz.gov.ua/
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: _gv_lang=uk; __utmt=1; _gv_sessid=umepl2bt9kd4e3r0h0og38o0o2; HTTPSERVERID=server2; __utma=31515437.636319940.1418332823.1418336734.1418340144.3; __utmb=31515437.2.10.1418340144; __utmc=31515437; __utmz=31515437.1418332823.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)

Form Data:
station_id_from:2204001
station_id_till:2208001
station_from:Харків
station_till:Одеса
date_dep:18.12.2014
time_dep:00:00
time_dep_till:
another_ec:0
search:

Form Data (source):
station_id_from=2204001&station_id_till=2208001&station_from=%D0%A5%D0%B0%D1%80%D0%BA%D1%96%D0%B2&station_till=%D0%9E%D0%B4%D0%B5%D1%81%D0%B0&date_dep=18.12.2014&time_dep=00%3A00&time_dep_till=&another_ec=0&search=

Вручную ввести можно сюда: http://booking.uz.gov.ua/

Но что-то не получается это реализовать:
Код:
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open('POST', 'http://booking.uz.gov.ua/purchase/search/')
$oHTTP.SetRequestHeader('Accept', '*/*')
$oHTTP.SetRequestHeader('Accept-Encoding', 'gzip, deflate')
$oHTTP.SetRequestHeader('Accept-Language', 'ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4')
$oHTTP.SetRequestHeader('Connection', 'keep-alive')
$oHTTP.SetRequestHeader('Content-Length', '214')
$oHTTP.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
$oHTTP.SetRequestHeader('GV-Ajax', '1')
$oHTTP.SetRequestHeader('GV-Referer', 'http://booking.uz.gov.ua/')
$oHTTP.SetRequestHeader('GV-Referer-Src', 'http://www.uz.gov.ua/')
$oHTTP.SetRequestHeader('GV-Screen', '1366x768')
$oHTTP.SetRequestHeader('GV-Unique-Host', '1')
$oHTTP.SetRequestHeader('Host', 'booking.uz.gov.ua')
$oHTTP.SetRequestHeader('Referer', 'http://booking.uz.gov.ua/')
$oHTTP.SetRequestHeader('Origin', 'http://booking.uz.gov.ua')
$oHTTP.SetRequestHeader('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36')
$oHTTP.Send('station_id_from=2204001&station_id_till=2208001&station_from=%D0%A5%D0%B0%D1%80%D0%BA%D1%96%D0%B2&station_till=%D0%9E%D0%B4%D0%B5%D1%81%D0%B0&date_dep=18.12.2014&time_dep=00%3A00&time_dep_till=&another_ec=0&search=')
$oHTTP.WaitForResponse
$Response = $oHTTP.ResponseText
ConsoleWrite($Response & @CRLF)
 
Автор
A

Alexander

Новичок
Сообщения
105
Репутация
2
Никто не знает? Тогда подскажите, пожалуйста, в какую сторону копать.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Alexander сказал(а):
Никто не знает? Тогда подскажите, пожалуйста, в какую сторону копать.
Точно сказать не могу, но мне кажется здесь всё дела в cookies...
Ответ сервера:
Код:
HTTP/1.1 400 Bad Request
Date: Sun, 14 Dec 2014 07:42:43 GMT
Server: Apache
Set-Cookie: _gv_sessid=oj57m1fnq30fskc3bm7df66je2; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0, private
Pragma: no-cache
Set-Cookie: _gv_lang=uk; expires=Sat, 14-Mar-2015 07:42:43 GMT; Max-Age=7776000; path=/
: 
Vary: User-Agent,Accept-Encoding
X-UA-Compatible: IE=Edge,chrome=1
Content-Length: 0
Content-Type: text/html; charset=utf-8
Content-Language: ru
Set-Cookie: HTTPSERVERID=server1; path=/
 
Верх