Необходимо оперативно формировать POST запрос и, соответственно, получать данные. Какие классы / функции следует при этом использовать? В какую сторону копать и где искать? Нашел только класс pecl_http.
Спасибо.
Спустя 16 минут, 45 секунд (9.03.2010 - 17:09) waldicom написал(а):
curl например
Спустя 1 час, 16 минут, 7 секунд (9.03.2010 - 18:26) Rapp_colince написал(а):
С помощью jquery (load)
Спустя 18 часов, 18 минут, 21 секунда (10.03.2010 - 12:44) umesaburo написал(а):
вот, спасибо, очень актуально, начинаю разбор полетов :)
Спустя 1 день, 23 часа, 57 минут, 59 секунд (12.03.2010 - 12:42) umesaburo написал(а):
Еще раз здравствуйте!
Для реализации задачи решил выбрать cURL, суть проблемы:
Не пойму в каком виде необходимо отправлять данные POST запроса.
Как я делаю:
1. создаю строку с данными вида id=value&id2=value2
2. использую rawurlencode()
3. устанавливаю тип контента в multipart/form-data (значения действительно большие, строка в более чем 5к символов)
Куки, по каким-то причинам, записываются в файл не все (по сравнению с браузером), а только sessionid (остальные куки, правда это счетчики).
Ошибка, видимо, тривиальная, помимо этого если не указать Content-Type: multipart/form-data, то возникают ошибки:
или
Для реализации задачи решил выбрать cURL, суть проблемы:
Не пойму в каком виде необходимо отправлять данные POST запроса.
Как я делаю:
1. создаю строку с данными вида id=value&id2=value2
2. использую rawurlencode()
3. устанавливаю тип контента в multipart/form-data (значения действительно большие, строка в более чем 5к символов)
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL, "моя ссыль");
curl_setopt($ch, CURLOPT_POSTFIELDS, $my_post_data);
//curl_setopt($ch, CURLOPT_COOKIE, "ASP.NET_SessionId=kqihycbx52mbgk45tos3jd45;"); //указывал для теста - id сессии взят из браузера
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: multipart/form-data"));
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2; .NET CLR 1.1.4322)");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'crap.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, "crap.txt");
$result=curl_exec ($ch);
Куки, по каким-то причинам, записываются в файл не все (по сравнению с браузером), а только sessionid (остальные куки, правда это счетчики).
# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
#HttpOnly_www.CАЙТ.ru FALSE / FALSE 0 ASP.NET_SessionId gjcd2n451nwffmbnu3doazby
Ошибка, видимо, тривиальная, помимо этого если не указать Content-Type: multipart/form-data, то возникают ошибки:
The state information is invalid for this page and might be corrupted.
или
Validation of viewstate MAC failed.
Спустя 2 часа, 28 минут, 24 секунды (12.03.2010 - 15:10) Nikitian написал(а):
Можно и так
$my_post_data=array('key1'=>'value1'.'key2'=>'value2');
curl_setopt($ch, CURLOPT_POSTFIELDS, $my_post_data);