[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с запросом CURL
AlterVision
Есть скрипт, использующий CURL. Так уж случилось, что он работает на сервере, стоящем за прокси, и этот прокси мне выдаёт странные результаты по любом CURL-запросу, в котором есть POST-данные.

Код скрипта:
$ch = curl_init ();
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4");
curl_setopt ($ch, CURLOPT_URL, 'http://www.awardspace.com/login.html');
curl_setopt ($ch, CURLOPT_TIMEOUT, 10);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
сurl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $post);
сurl_setopt ($ch, CURLOPT_COOKIEFILE, PATH_CORE . 'data/awardspace-login.txt');
curl_setopt ($ch, CURLOPT_COOKIEJAR, PATH_CORE . 'data/awardspace-login.txt');
$result = curl_exec ($ch);
curl_close ($ch);


Ответ, который получает скрипт от сервера (учитывая заголовок).

HTTP/1.0 417 Expectation failed
Server: squid/2.7.STABLE4
Date: Sat, 07 Nov 2009 10:33:45 GMT
Content-Type: text/html
Content-Length: 1455
Expires: Sat, 07 Nov 2009 10:33:45 GMT
X-Squid-Error: ERR_INVALID_REQ 0
X-Cache: MISS from proxy
X-Cache-Lookup: NONE from proxy:3128
Via: 1.0 proxy:3128 (squid/2.7.STABLE4)
Connection: close

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>
ERROR: The requested URL could not be retrieved</TITLE>
<STYLE
type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
</HEAD><BODY>
<H1>
ERROR</H1>
<H2>
The requested URL could not be retrieved</H2>
<HR
noshade size="1px">
<P>

While trying to process the request:
<PRE>
POST /login.html HTTP/1.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4
Host: www.awardspace.com
Accept: */*
Content-Length: 449
Expect: 100-continue
Content-Type: multipart/form-data; boundary=----------------------------4a14a0dc40a5

</PRE>
<P>

The following error was encountered:
<UL>
<LI>
<STRONG>

Invalid Request
</STRONG>
</UL>

<P>

Some aspect of the HTTP Request is invalid. Possible problems:
<UL>
<LI>
Missing or unknown request method
<LI>Missing URL
<LI>Missing HTTP Identifier (HTTP/1.0)
<LI>Request is too large
<LI>Content-Length missing for POST or PUT requests
<LI>Illegal character in hostname; underscores are not allowed
</UL>
<P>
Your cache administrator is <A HREF="mailto:webmaster">webmaster</A>.

<BR clear="all">
<HR
noshade size="1px">
<ADDRESS>

Generated Sat, 07 Nov 2009 10:33:45 GMT by proxy (squid/2.7.STABLE4)
</ADDRESS>
</BODY></HTML>


Подскажите, как можно исправить эту ошибку? Возможно, требуется послать особые заголовки?

ЗЫ: замечено, что если отправку вести вручную через сокеты, посылая POST-запрос напрямую, всё проходит. Кроме того, проходят все запросы по https без проблем, на нормальном curl-е.



Спустя 1 час, 56 минут, 5 секунд (7.11.2009 - 15:34) Oyeme написал(а):
$pass = 'user:password';

curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $pass);
curl_setopt($ch, CURLOPT_PROXY, "http://proxy.test.com:880"); //your proxy link is here

wink.gif




//для статуса проверяй curl_exec($ch)

Спустя 2 года, 3 месяца, 4 дня, 7 часов, 49 минут, 59 секунд (11.02.2012 - 22:24) Konstantin Krylov написал(а):
Спасибо. Удалось решить такую же проблему.
Быстрый ответ:

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