当前位置: 首页 > 面试题库 >

CURL和HTTPS,“无法解析主机”

柯瀚玥
2023-03-14
问题内容

我正在尝试使用CURL来获取页面的内容。正在执行获取的页面是https,并且正在尝试获取的页面也是https。我尝试的所有设置都出现错误“无法解析主机”。

$c=curl_init();
curl_setopt($c, CURLOPT_URL,$url);
//curl_setopt($c, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:x.x.x) Gecko/20041107 Firefox/x.x");
curl_setopt ($c, CURLOPT_RETURNTRANSFER, TRUE);
//curl_setopt($c, CURLOPT_SSL_VERIFYPEER, TRUE);
//curl_setopt($c, CURLOPT_SSL_VERIFYHOST, TRUE);
curl_setopt($c, CURLOPT_HEADER, FALSE);

$html=curl_exec($c);

if($html === false) {
    echo curl_error($c);
}
else {
    echo 'Operation completed without any errors';
}


curl_close($c);

有任何想法吗?


问题答案:

也许是DNS问题?

根据以下代码尝试您的网址:

$_h = curl_init();
curl_setopt($_h, CURLOPT_HEADER, 1);
curl_setopt($_h, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($_h, CURLOPT_HTTPGET, 1);
curl_setopt($_h, CURLOPT_URL, 'YOUR_URL' );
curl_setopt($_h, CURLOPT_DNS_USE_GLOBAL_CACHE, false );
curl_setopt($_h, CURLOPT_DNS_CACHE_TIMEOUT, 2 );

var_dump(curl_exec($_h));
var_dump(curl_getinfo($_h));
var_dump(curl_error($_h));


 类似资料:
  • 我已经使用以下请求生成了一个auth令牌: curl-i-v“https://api.omniture.com/token”-u“my-user”-d“grant_type=client_credentials” 然后,我复制返回的整个对象,如下所示: 编辑 在下面写的答案之后,这是我得到的错误消息:

  • 问题内容: 我发现此功能确实出色(IMHO) 我唯一的问题是它不适用于https://。Anny的想法,我需要做些什么才能使https工作?谢谢! 问题答案: 快速修复,在您的选项中添加: 现在,您不知道您实际上要连接到哪个主机,因为cURL不会以任何方式验证证书。 或只是将其添加到当前函数中:

  • 问题内容: 我在Ubuntu操作系统上使用了2个容器:Gitlab-ce和gitlab-runner 容器名称是:和 我通过访问我的gitlab应用 我使用以下命令成功注册了跑步者: 然后,当我开始工作时,出现以下错误消息: 在这两个容器中,我都可以访问主机名。我认为问题来自无法解决主机的高山图像。 我该如何解决? 谢谢 编辑1 docker-compose.yml 编辑2 docker-comp

  • 问题内容: 当我尝试将网页加载到终端时,它给出了错误。 我的PC上有互联网,并尝试通过家庭互联网连接。因此,我这里没有任何代理人参与。 并再次尝试,但并不幸运。 但是,如果我使用IP代替域名,则可以正常工作。 有什么线索吗? 问题答案: 问题是: 启用IPV6 DNS服务器错误 这是我的解决方法: IPV6禁用 开放终端 键入并输入登录为超级用户 输入root密码 键入将目录更改为 键入以在那里创

  • 我的android应用程序中的Amazon analytics正在尝试连接到此主机“mobileanalytics.eu-west-1.amazonaws.com”,但无法解决此问题,导致以下错误: I/AmazonHttpClient:无法执行HTTP请求:无法解析主机“mobileanalytics.eu-west-1.amazonaws.com”:没有与主机名10-12 14:05:34.8

  • 问题内容: 我正在尝试在我的机器(Ubuntu)上的docker上做一个詹金斯。 我必须访问我公司中的git repo。但是在詹金斯,我得到这个错误: 无法解析主机:gogs.mycompany.com 我认为这是DNS错误,因此我尝试像这样启动docker(使用–dns和–dns-search) sudo docker run -p 8080:8080 -p 50000:50000 -v / h