簡體   English   中英

錯誤:無法通過 CURL 連接到同一域上的主機

[英]error: couldn't connect to host via CURL on same domain

我有一個網址 - http://www.xxx.xxx.xxx/

這個網址,我可以通過瀏覽器打開。 我什至可以從我的機器上通過 cURL 調用這個 URL,但是當我從同一服務器和域上的代碼調用它時,它給了我一個錯誤 - error: couldn't connect to host

以下是我的代碼 -

function get_xml_via_curl($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    echo $url;
    curl_setopt($ch, CURLOPT_FAILONERROR, 1);
    /*curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);*/
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 15);
    $returned = curl_exec($ch);
    if(curl_errno($ch)) {
        echo 'error: ' . curl_error($ch);
    }
    curl_close($ch);
    // $xml === False on failure
    $xml = simplexml_load_string($returned);
    return $xml;
}

就像我說的,在本地主機上這是有效的。 我可以通過瀏覽器直接打開網址。 但是當我在同一台服務器上部署代碼並嘗試通過 cURL 調用時,它給了我一個錯誤 - error: couldn't connect to host

更新代碼 -

我將服務器上的代碼修改為 -

function get_xml_via_curl($url) {
    $url = " http://www.xxx.xxx.xxx.xxx/";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FAILONERROR, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 15);
    $returned = curl_exec($ch);
    if(curl_errno($ch)) {
        echo 'error: ' . curl_error($ch);
    }
    curl_close($ch);
    $xml = simplexml_load_string($returned);
    return $xml;
}

並且 curl 的錯誤更改為以下 -

error: Protocol http not supported or disabled in libcurl

您更新的代碼不起作用,因為$url = " http...

由於某些防火牆或名稱服務器問題,原始代碼可能無法正常工作。 嘗試在同一服務器上的瀏覽器中直接訪問要加載的 URL。 那也可能會失敗。

您需要修復服務器以接受來自本地主機的請求。

還可以幫助您檢查 Web 服務器和防火牆日志文件。 查看請求被拒絕的原因。 甚至只是暫時禁用防火牆以排除它。

我遇到了同樣的情況,PHP curl 由於相同的域而拋出“連接超時錯誤”並嘗試了所有其他選項,但沒有任何效果。

最后我得到了答案並修復了它。 只需運行以下命令(ubuntu)

# sudo ifconfig lo up

對於 Cent 操作系統:

# sudo ip link set lo up
# sudo ip addr show

“lo”是環回接口。 這是系統用來與自身通信的特殊網絡接口。

嘗試:

$url="//your url";
echo get_xml_via_curl($url);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM