cURL Proxy выдает 407 - PullRequest
       5

cURL Proxy выдает 407

0 голосов
/ 29 ноября 2011

Следующее дает мне ошибку 407, Кто-нибудь может увидеть, почему или где я иду не так? Я за прокси. Я потратил некоторое время на это. Я использую правильные учетные данные. Спасибо

function pushMeTo($widgeturl,$text,$signature) {
    $agent = "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.12) Gecko/2009070611 Firefox/3.0.12";
    if (!function_exists("curl_init")) die("pushMeTo needs CURL module, please install CURL on your php.");
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $widgeturl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 1); 
    curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); 
    curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:pass');
    curl_setopt($ch, CURLOPT_PROXY, "IP");
    curl_setopt($ch, CURLOPT_PROXYPORT, 8080);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_USERAGENT, $agent);
    $page = curl_exec($ch); //or die("Curl exe failed"); 
    print_r(curl_error($ch));
    print_r($page);
    preg_match("/form action=\"(.*?)\"/", $page, $form_action);
    preg_match("/textarea name=\"(.*?)\"/", $page, $message_field);
    preg_match("/input type=\"text\" name=\"(.*?)\"/", $page, $signature_field);
    //print_r($message_field);
    $ch = curl_init();
    $strpost = $message_field[1].'=' . urlencode($text) . '&'.$signature_field[1].'=' . urlencode($signature);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $strpost );
    curl_setopt($ch, CURLOPT_URL, $form_action[1]);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, $agent);
    $page = curl_exec($ch);
}




?>

<?

$url = "MY URL";
 pushmeTo ($url,"This Is A Test","ServiceDesk");

?>

Ответы [ 3 ]

1 голос
/ 29 ноября 2011

Попробуйте добавить:

curl_setopt($ch, CURLOPT_PROXYTYPE, 'HTTP'); // just a guess 

Если это не работает, проверьте, загружен ли модуль mod_proxy apache или нет.Если он также загружен, попробуйте перекомпилировать модуль curl, используя последнюю версию. Надеюсь, это поможет вам в отладке.

1 голос
/ 30 января 2012

Ответом было добавить:

curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);

После этого все заработало!

0 голосов
/ 29 ноября 2011

Проверьте дно, где вы используете функцию. Должен иметь капитолий М.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...