cURL错误#:无法解析主机:-PHP

时间:2019-12-01 12:03:40

标签: php curl

我对此代码有疑问:

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:

我知道有很多这样的问题,但是这些问题的答案对我没有帮助,因为它的代码不同。有谁能帮助我解决此错误:

2 个答案:

答案 0 :(得分:1)

可能有几件事;通常是网址格式错误或cURL范围之外的网络问题。

首先,为自己节省一些时间,只需仔细检查您输入的URL是否正确即可。我一次又一次= D

接下来,在执行PHP代码的同一台计算机上,并在同一用户下,从命令行运行类似curl -sS http://yoururl.com/example的命令。这将帮助您仔细检查您的代码实际上可以发出出站HTTP请求。

如果curl命令在bash中失败,则可以根据错误查看一些原因:

  • 网络问题(您的本地/开发计算机是否失去了互联网连接?)
  • 防火墙问题;您的防火墙是否配置为允许入站HTTP而不允许出站?
  • 这是DNS问题(我的最爱!)。如果该域是新域,则可能尚未向您服务器的上游DNS提出建议。

在这一点上,您的问题从卷曲转向网络和DNS,因此我不会更深入地进行调试……但这至少是我开始研究您的错误消息的地方。

答案 1 :(得分:0)

读取症状后,您使用的DNS解析器可能太忙(超时)-或-在特定时间范围内限制每个IP地址的查询数量。因此,如果在不同的日期运行相同的精确过程,可能会给出不同的错误。