Тема: POST и headers
Показать сообщение отдельно

  #10  
Старый 03.06.2009, 14:24
alex.k12
Новичок
Регистрация: 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($chCURLOPT_HTTPHEADER$headers);
    
curl_setopt($chCURLOPT_PROXY$proxy);
    
curl_setopt($chCURLOPT_URL"http://www.anysite.ru/site.php?par=1");
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
     
curl_setopt($chCURLOPT_POST1);
    
curl_setopt($chCURLOPT_HEADER0);
    
curl_setopt($chCURLOPT_POSTFIELDS$postdata);
    
    
$resultcurl_exec ($ch);
    
curl_close ($ch); 
На сервере, куда я отправляю POST, стоит проверка на корректность запросов и не пропускает вот этот вот мой curl-запрос, значит что-то в нём не хватет или наоборот лишнее. Что?

Последний раз редактировалось alex.k12; 03.06.2009 в 14:32..
 
Ответить с цитированием