簡體   English   中英

cURL 錯誤 #:無法解析主機:- PHP

[英]cURL Error #:Could not resolve host: - PHP

我對這段代碼有問題:

function get_request($url,$header_array){

        $curl = curl_init();
        curl_setopt_array($curl, array(
          CURLOPT_URL => $url,
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => "",
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 30,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => "GET",
          CURLOPT_HTTPHEADER => $header_array,
        ));

        $response = curl_exec($curl);
        $err = curl_error($curl);

        curl_close($curl);

        if ($err) {
          echo "cURL Error #:" . $err;
        } else {
          return $response;
        }

    }

我有這個錯誤:

cURL Error #:Could not resolve host:

我知道有很多這樣的問題,但這些問題的答案對我沒有幫助,因為它的代碼不同。 有沒有人可以幫我解決這個錯誤:

這可能是一些事情; 通常是格式錯誤的 URL 或 cURL 范圍之外的網絡問題。

首先,為自己節省一些時間,並仔細檢查您是否正確輸入了 URL。 我一次又一次地這樣做=D

接下來,在執行 PHP 代碼的同一台機器上,在同一用戶下,從命令行運行curl -sS http://yoururl.com/example類的東西。 這將幫助您仔細檢查您的代碼是否可以實際發出出站 HTTP 請求。

如果您的 curl 命令在 bash 中失敗,那么您可以根據錯誤查看一些原因:

  • 網絡問題(您的本地/開發機器是否丟失了互聯網連接?)
  • 防火牆問題; 您的防火牆是否配置為允許入站 HTTP(s)而不是出站?
  • 是 DNS 問題嗎(我最喜歡的!)。 如果域是新的,可能它還沒有向您服務器的上游 DNS 提出建議。

在這一點上,您的問題從 curl 轉向了網絡和 DNS,因此我不會深入研究調試……但這至少是我開始查看您的錯誤消息的地方。

閱讀症狀,您使用的 DNS 解析器可能太忙(超時) - 或 - 限制特定時間跨度內每個 IP 地址的查詢次數。 因此,如果在不同的日期運行,相同的確切過程可能會產生不同的錯誤。

暫無
暫無

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

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