Как разрешить cURL Error (7): не удалось подключиться к хосту? - программирование
Подтвердить что ты не робот

Как разрешить 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+, ничего не получается. Любое решение.

4b9b3361

Ответ 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-запросами. Многие запросы на завивки не смогут подключаться и поэтому возвращаются с ошибкой