如何解决php curl curl_errno返回6 无法解析主机

php curl error:php curl error code_大海技术博客-CSDN博客

有些时候发下浏览器可以访问的get接口,postman却返回false,打印error code后返回数值,可以参考上面的errror code值找到对应的值处理

首先直接ping一下,比如如果你的接口是get的

#ping
curl "http://www.baidu.com.cn/api/getDriverInfo/?arg=%7B%22driver_id%22%3A8008%7D"

发下ping通的

命令行curl解析主机。浏览器解析了主机。只有PHP curl无法解决它。

最终,问题归结于curl配置。我安装了带有自制程序的PHP,并作为依赖项安装了它curl-openssl以供PHP使用。curl的此安装由brew公式配置c-ares为用于域名解析。我不知道它是如何c-ares工作的,但是此VPN DNS显然是一种边缘情况,在OS X上无法正确处理(可能是由于OS X在保持/etc/resolv.conf最新状态方面做得很差)。

/usr/bin/curl另一方面,已配置为使用本机OS X解析器。这与PHP gethostbyname和网络浏览器使用的解析器相同,这说明了为什么两者都能按预期工作的原因。

$ brew uninstall --ignore-dependencies curl-openssl

 centos 安装参考:openssl 升级、curl支持https配置 - 简书

这通过转储此“损坏的” curl安装解决了我的问题。我不确定后备机制如何工作,但是我相信PHP现在正在使用,/usr/bin/curl因为我没有curl(我知道)其他安装,并且现在curl列出的版本在以前没有phpinfo()匹配/usr/bin/curl时就可以匹配

Guess you like

Origin blog.csdn.net/qq_27229113/article/details/121021254