
03.06.2009, 14:24
|
|
Новичок
Регистрация: 03.05.2009
Сообщений: 19
Провел на форуме: 53130
Репутация:
0
|
|
Мне нужно абсолютно точно воспроизвести запрос из браузера в своей программе с помощью курла. Вот что надо отправить в хедерах:
Код:
(Request-Line) POST /site.php?par=1 HTTP/1.1
Host: www.anysite.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-LanguageL: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 43200
Connection: keep-alive
Referer: http://www.anysite.ru/fol/
Cookie: PHPSESSID=2lpliicfgkjfnmjhbkm6dbn4t1
Content-Type: multipart/form-data; boundary=---------------------------21718375316139
Content-Length: 48176
В самом POST-запросе надо отправить следующее:
Код:
Content-Type: multipart/form-data; boundary=---------------------------21718375316139
Content-Length: 48176
-----------------------------21718375316139
Content-Disposition: form-data; name="param1"
123
-----------------------------21718375316139
Content-Disposition: form-data; name="param2"
123
-----------------------------21718375316139
Content-Disposition: form-data; name="email"
-----------------------------21718375316139
Content-Disposition: form-data; name="imagefile"; filename="pic.jpeg"
Content-Type: image/jpeg
ÿØÿà�JFIF��H�H��ÿþ�;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 80
ÿÛ�C�
(дальше пошло содержимое картинки)
Для этого я пишу следующий запрос:
PHP код:
$postdata = array( 'param1' => '123',
'param2' => '123',
'email' => '',
'imagefile' => "@".'c:\www\pic.jpg');
$ch = curl_init();
$headers[] = 'Host:www.anysite.ru';
$headers[] = 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10';
$headers[] = 'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
$headers[] = 'Accept-Language:ru,en-us;q=0.7,en;q=0.3';
$headers[] = 'Accept-Encoding:gzip,deflate';
$headers[] = 'Accept-Charset:windows-1251,utf-8;q=0.7,*;q=0.7';
$headers[] = 'Keep-Alive:43200';
$headers[] = 'Connection:keep-alive';
$headers[] = 'Referer:http://www.anysite.ru/fol/';
$headers[] = 'Cookie:PHPSESSID=2lpliicfgkjfnmjhbkm6dbn4t1';
$headers[] = 'Content-Type:multipart/form-data; boundary=---------------------------21718375316139';
$headers[] = 'Content-Length:48176';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_URL, "http://www.anysite.ru/site.php?par=1");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
$result= curl_exec ($ch);
curl_close ($ch);
На сервере, куда я отправляю POST, стоит проверка на корректность запросов и не пропускает вот этот вот мой curl-запрос, значит что-то в нём не хватет или наоборот лишнее. Что?
Последний раз редактировалось alex.k12; 03.06.2009 в 14:32..
|
|
|