Есть сайт http://www2.turtess-online.com.ua/search/
Передо мной встала задача формировать свой запрос при помощи курла и затем отдавать его клиенту. Данные передаются методом POST, за исключением какогото непонятного идентификатора, который перставляет собой метку времени. Обращение происходит вот по этому адресу http://www2.turtess-online.com.ua/search/first_events.php при помощи Ajax'a. Вроде бы ничего сложного, но есть одна незадача. Скрипт требует, чтобы Content-Type был application/octet-stream. Вот что я нашёл в js-исходнике по этому поводу:
| Код | // Set non-default Content-type. We cannot use // "application/x-www-form-urlencoded" here, because // in PHP variable HTTP_RAW_POST_DATA is accessible only when // enctype is not default (e.g., "application/octet-stream" // is a good start). We parse POST data manually in backend // library code. this._xmlReq.setRequestHeader('Content-Type', 'application/octet-stream');
|
Но КАК поставить этот хедер с помощью курла - не представляю. curl_setopt($ch, CURLOPT_HEADER, "Content-type: application/octet-stream"); не помогает
вот код на PHP
для простоты параметр $post взят из отсниферинного вызова
| Код | <?php
$id= (time()*1000).'1'; $post= 'spokey=&uid=1025444&fav=0&bonus=0&price=&resort=&ch1=&ch2=&ch3=&openonly=1&lr=0&pr=&p=0&rows=20&ttype=&fromcity=&tocity=&country=&sorter=p1&board=&pm=2&stars=%3A5859421%3A&minprice=0&nights=&pagenum=&dateFrom=12.02.2010&hotelKey=000&adult=2&child=0&hotelArray=&resortArray=&test=303';
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www2.turtess-online.com.ua/search/first_events.php?test=abc&'.($id).'-xml'); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14'); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_REFERER, 'http://www2.turtess-online.com.ua/search/'); curl_setopt($ch, CURLOPT_COOKIE, 'Cookie: uid=1025444; b=b; PHPSESSID=70d0fcac511a6ef53f5f852cda5666f5'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_HEADER, "Content-type: application/octet-stream");
$answer= curl_exec($ch); echo $answer; ?>
|
Буду весьма признателен за подсказку! |