关于curl在线上环境报400的问题

编程入门 行业动态 更新时间:2024-10-26 00:31:47

关于curl在<a href=https://www.elefans.com/category/jswz/34/1770445.html style=线上环境报400的问题"/>

关于curl在线上环境报400的问题

问题:测试环境调用三方接口正常,线上环境接口报错400。

排查:两个方向:1代码问题,2线上ip没在三方控制后台加白名单。

           首先postman模拟请求三方接口正常,于是在postman生成curl指令。
curl --location --request POST '' \
--header 'content-type: application/json' \
--header 'appId: 123456789' \
--header 'secretKey: 123456789abcdefghijklmn' \
--header 'deviceid: 1234567' \
--header 'channelid: 1234567' \
--header 'accessToken: abcdefghijk123456789'
在报错的线上机器执行,可以执行成功,证明不是ip白名单的问题。
那就是代码问题了。

在线上报错那台机器上写个脚本a.php,把自己那段代码贴过去,一遍一遍去调试。最终发现加上这行代码curl_setopt($ch, CURLOPT_POSTFIELDS, "{}");就可以了,即body为空时也需要显式的写这行代码。

原因:线上php扩展curl的版本7.25.0,测试版本7.46.0。
cURL 7.29.0 及之前的版本或HP 5.5.x 及之前的版本,请求体为空且没有设置CURLOPT_POSTFIELDS,可能会导致报错。请注意,这只是针对较旧版本的cURL和PHP扩展的一般性指导。具体的版本和行为可能因操作系统、编译选项和其他因素而有所不同。具体可查阅相关文档或向PHP和cURL社区寻求支持。

解决:加上这行代码:curl_setopt($ch, CURLOPT_POSTFIELDS, "{}");

更多推荐

关于curl在线上环境报400的问题

本文发布于:2023-11-17 13:46:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1642595.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:线上   环境   curl

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!