Как разрешить cURL Error (7): не удалось подключиться к хосту?
Я отправляю код товара в веб-сервис в формате xml, используя cUrl (php). Я получаю правильный ответ в localhost, но когда это делает сервер, он показывает
Ошибка cURL (7): не удалось подключиться к хосту
И вот мой код:
function xml_post($post_xml, $url)
{
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$ch = curl_init(); // initialize curl handle
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_xml);
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
// curl_setopt($ch, CURLOPT_PORT, $port);
$data = curl_exec($ch);
$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);
if ($curl_errno > 0) {
echo "cURL Error ($curl_errno): $curl_error\n";
} else {
echo "Data received\n";
}
curl_close($ch);
echo $data;
}
Я отправляю код товара на счет и получаю от него детали. Я пытался использовать обе версии php 4+ и php5+, ничего не получается. Любое решение.
Ответы
Ответ 1
Код ошибки CURL 7 (CURLE_COULDNT_CONNECT)
очень явно... это означает, что не Failed to connect() to host or proxy.
Следующий код будет работать в любой системе:
$ch = curl_init("http://google.com"); // initialize curl handle
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
print($data);
Если вы не видите страницу Google, тогда.. your URL is wrong
или у вас есть проблема с firewall
или restriction
.
Ответ 2
"Ошибка CURL ERROR 7 Не удалось подключиться к разрешению отказа" вызвана, когда по какой-либо причине запрос на завивание блокируется каким-либо брандмауэром или подобной вещью.
вы столкнетесь с этой проблемой, когда запрос на завивание не будет со стандартными портами.
например, если вы зависаете с некоторым URL-адресом, который находится на порту 1234, вы столкнетесь с этой проблемой, когда URL-адрес с портом 80 легко даст вам результаты.
Чаще всего эта ошибка наблюдается в CentOS и любой другой ОС с помощью "SElinux".
вам нужно либо отключить, либо изменить SElinux на разрешающий
посмотрите на этот
http://www.akashif.co.uk/php/curl-error-7-failed-to-connect-to-permission-denied
Надеюсь, что это поможет
Ответ 3
Можете ли вы ударить по этому URL браузером или PHP script? Произошла ошибка: вы не можете подключиться. Поэтому сначала убедитесь, что URL доступен.
Ответ 4
В моем случае у меня было что-то вроде cURL Error (7): ... Operation Timed Out
. Я использую сетевое подключение компании, над которой я работаю. Мне нужно было создать некоторые переменные среды. Следующий работал у меня:
В терминале Linux:
$ export https_proxy=yourProxy:80
$ export http_proxy=yourProxy:80
В Windows я создал (то же) переменные среды в пути Windows.
Надеюсь, это поможет!
Привет!
Ответ 5
В PHP, если ваша сеть под прокси. Вы должны установить URL-адрес прокси-сервера и порт
curl_setopt($ch, CURLOPT_PROXY, "http://url.com"); //your proxy url
curl_setopt($ch, CURLOPT_PROXYPORT, "80"); // your proxy port number
Это решает мою проблему
Ответ 6
Проверьте, заблокированы ли порты 80 и 443. или введите - IP graph.facebook.com и введите его в файл etc/hosts
Ответ 7
Эта проблема также может быть вызвана выполнением вызовов curl на https, когда он не настроен на удаленном устройстве. Вызов HTTP может решить эту проблему в этих ситуациях, по крайней мере, до тех пор, пока вы не настроите ssl на удаленном компьютере.
Ответ 8
В моем случае проблема была вызвана провайдером хостинга, в котором я использовал блокировку http-пакетов, адресованных их IP-блоку, которые исходили из их IP-блока. Un-frickin-правдоподобно!!!
Ответ 9
вы также можете получить это, если вы пытаетесь одновременно использовать один и тот же URL-адрес с несколькими HTTP-запросами. Многие запросы на завивки не смогут подключаться и поэтому возвращаются с ошибкой