今天对接一家供应商的 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 前面有个空格。

解决方法

去除空格后问题解决。

标签: php, curl