LINUX.ORG.RU

Сервер не принимает идентификатор сессии, полученный через cURL

 ,


0

1

Здравствуйте, помогите разобраться с казалось бы тривиальной задачей, получить HTML страницу через cURL. Я уже задал вопрос на stackoverflow, но надежды мало. Я опущу PHP код самих запросов, т.к. в них ничего особенного нет.

Я пытаюсь воспользоваться поиском на сайте простым GET запросом на адрес: http://www.akparts.ru/searchdetail/?search=Y&search-type=0&number_lis... но прежде чем сервер отдаст результат ему нужно предоставить идентификатор сессии, который записывается в куку при первом входе на сайт http://www.akparts.ru (авторизация на сайте не требуется, хотя с этим проблем нет, авторизация через cURL проходит нормально).

Сначала я делаю курлом запрос на главную страницу сайта чтобы получить идентификатор сессии и он даже записывается в куки файл:

# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

www.akparts.ru  FALSE   /   FALSE   0   PHPSESSID   qi0n130nd4i765t4ogm10p1dv6

но при следующем запросе на поиск http://www.akparts.ru/searchdetail/?search=Y&search-type=0&number_lis... сервер говорит, что сессия просрочена и надо обновить страницу.

Я пробовал скопировать PHPSESSID из браузера и тупо вставить в мой куки файл и в этом случае сервер нормально отвечает на все мои cURL запросы.

Почему серверу не нравится идентификатор полученный курлом?

Я сравнивал заголовки отправляемые браузером и курлом и они на 100% идентичны, за исключением порядка параметров, но их количество и содержимое полностью совпадает.

Ответ на: комментарий от NeverLoved

Открыл страницу http://www.akparts.ru/soap/ на ней форма: логин, пароль, номер детали и кнопка поиск. Ввожу свой логин и пас и вижу это:

Fatal error: Uncaught SoapFault exception: [SOAP-ENV:Server] Access from your IP-address denied (217.16.18.78). in /var/www/vhosts/akparts.ru/www/soap/index.php:41 Stack trace: #0 /var/www/vhosts/akparts.ru/www/soap/index.php(41): SoapClient->__call('getDetail', Array) #1 {main} thrown in /var/www/vhosts/akparts.ru/www/soap/index.php on line 41

Документации по веб-сервису на их сайте не нашел. Если юзать SOAP можно не с любого IP, то все же придется парсить.

leealex ()
Ответ на: комментарий от leealex

Попробовал сделать запрос на PHP

$client = new SoapClient("http://www.akparts.ru/soap/search.wsdl");
print($client->getDetail());
результат тот же
SoapFault

Access from your IP-address denied (2.94.74.194).

leealex ()

Какая то защина стоит от роботов. Возможно в сессию что то пишется. Посмотри на ajax запросы когда заходишь на сайт, посмотри куки

gobot ★★★★ ()
Ответ на: комментарий от gobot

наоборот, ему, cookie *ф топку.. (программно ИВ)..

А, на всё ето дельце нацепить TalkTalk вебморду, как т таким..

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.