[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Генерация POST запроса
umesaburo
Доброго времени суток!

Необходимо оперативно формировать 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к символов)

     $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);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.