curl возвращает «Сбой при получении данных от однорангового узла» - PullRequest
0 голосов
/ 01 августа 2011

Я извлекаю данные из URL с помощью curl.

Все работает нормально, если php-код вызывается через HTTP-запрос или если URL-адрес введен в Firefox.Если тот же код выполняется из скрипта PHP CLI, curl_exec возвращает false.Сообщение об ошибке «Ошибка при получении данных от однорангового узла».

Любые идеи, почему curl не работает?

Когда я устанавливаю вывод curl как подробный, я получаю:

Setting curl to verbose gives:
< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
< Last-Modified: Mon, 01 Aug 2011 13:04:59 GMT
< Cache-Control: no-store
< Cache-Control: no-cache
< Cache-Control: must-revalidate
< Cache-Control: pre-check=0
< Cache-Control: post-check=0
< Cache-Control: max-age=0
< Pragma: no-cache
< Expires: Thu, 01 Jan 1970 00:00:00 GMT
< Content-Type: text/xml
< Transfer-Encoding: chunked
< Date: Mon, 01 Aug 2011 13:04:58 GMT
< 
*   Trying 153.46.254.70... * Closing connection #0
* Failure when receiving data from the peer

Это код:

// if curl is not installed we trigger an alert, and exit the function
if (!function_exists('curl_init')){
    watchdog('sixtk_api', 'curl is not installed, api call cannot be executed',array(),WATCHDOG_ALERT);
    return $this;
}
// OK cool - then let's create a new cURL resource handle
$ch = curl_init();

// Set URL to download
curl_setopt($ch, CURLOPT_URL, $this->request);

// Should cURL return or print out the data? (true = return, false = print)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Timeout in seconds
curl_setopt($ch, CURLOPT_TIMEOUT, 180);


// Download the given URL, and return output
$output = curl_exec($ch);
if (!$output) {
    $error = curl_error($ch);
  echo($error);
}

// Close the cURL resource, and free system resources
curl_close($ch);

1 Ответ

0 голосов
/ 23 апреля 2013

попробуйте wget.если это тоже не удается, но вы можете получить доступ к адресу с другого IP / устройства, это, вероятно, означает, что ваш IP заблокирован или отфильтрован с помощью атаки firewall / nginx anti ddos.попробуй прокси.

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