На что указывают эти заголовки ответов php Curl? - PullRequest
0 голосов
/ 21 июля 2011

Я пытаюсь использовать Curl для связи с API сервера:

  $ch = curl_init(); 
  curl_setopt($ch, CURLOPT_URL, 'pilot-payflowpro.paypal.com');
  curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
  curl_setopt($ch, CURLOPT_HEADER, 1); // tells curl to include headers in response
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return into a variable
  curl_setopt($ch, CURLOPT_TIMEOUT, 45); // times out after 45 secs
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // this line makes it work under https
  curl_setopt($ch, CURLOPT_POSTFIELDS, $plist); //adding POST data
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,  2); //verifies ssl certificate
  curl_setopt($ch, CURLOPT_FORBID_REUSE, TRUE); //forces closure of connection when done 
  curl_setopt($ch, CURLOPT_POST, 1); //data sent as POST 

  $result = curl_exec($ch);
  $headers = curl_getinfo($ch);
  print_r($headers);

Однако переменная $ result пуста, так как в качестве повторного переноса было установлено значение 1, это означает, что ответ не был получен. Распечатка заголовков дает:

( [url] => HTTP://pilot-payflowpro.paypal.com [content_type] => [http_code] => 0 
[header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0 
[redirect_count] => 0 [total_time] => 1.656 [namelookup_time] => 0.062 [connect_time] => 0
 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 
[speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 
[starttransfer_time] => 0 [redirect_time] => 0 [certinfo] => Array ( ) ) 

Что это предлагает с точки зрения отладки? Я использую wamp на локальном компьютере с включенным curl.

Спасибо.

1 Ответ

1 голос
/ 21 июля 2011

Похоже, что вы CURLOPT_URL параметр неверен ... попробуйте его с полностью заполненным URL (http://pilot -payflowpro.paypal.com)

В вашем примере curl не знает, какой протокол использовать (http, https)

Edit: попробуйте это с https://pilot-payflowpro.paypal.com, так как упомянутый вами сервер не отвечает по протоколу http

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