PHP 调用接口报错: cURL error 3
今天对接一家供应商的 API,尝试第一个接口的时候遇到报错:
[GuzzleHttp\Exception\RequestException]
cURL error 3: (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
百思不得其姐。
一开始怀疑是最近升级了 php8 导致的 curl 包错了,但发现其他 API 服务没有问题。
复制请求的 URL 到浏览器打开,发现也没问题。
搜索了一圈,找到下面这个错误说明:
shell 脚本中使用curl命令出现下列错误:
* Illegal characters found in URL
* Closing connection -1
curl: (3) Illegal characters found in URL
看网友的错误是因为 url 里有非法的字符,于是尝试把参数 urlencode,没有效果。
再仔细检查,猛然发现 URL 里有个空格!
$url = ' http://xxx.xxx.com/xxx/xxx/xxx';
注意看,http 的 h 前面有个空格。
解决方法
去除空格后问题解决。