一、 curl 302 重定向问题
在使用curl请求外部接口时,如下图提示301/302
解决方法:
- 打印出curl 访问的地址,可以在浏览器上访问测试。如下图在浏览器上访问该url, 发现跳转了1次,经过查看发现是url有问题,拼接地址时少了一个“/”导致。
- 如果url没有问题,访问该url确实需要跳转,那就修改curl 参数 CURLOPT_FOLLOWLOCATION
二、curl post 提示缺少参数
如果访问的是同一个站点的不同接口,GET正常,POST提示缺少参数。
解决方法:
- 将curl 中的url打印出来,在浏览器上测试,查看该url是否出现301/302跳转,如果是跳转导致,则post参数在跳转中肯定是无法传递的
- 如果是跳转导致,则如上检测url是否有问题导致出现跳转。
三、curl 提示 400
curl 中发现该项目调用外部接口都会提示400,如下图将curl返回结果打印出来,之前都一直正常.
解决方法:
- 将curl中的url打印出来,在浏览器上测试,一切正常,也就是浏览器访问正常,curl提示400。
- 网上查找资料说url中有空格,回想了一下最近一次修改,发现sign签名这个参数内容中确实有空格
- 故解决方法也很简单,将参数都urlencode即可,然后再和域名拼接,curl测试正常了。