求助,我心态崩了了。。。关于 PHP CURL POST 提交数据时接口接收不到数据的问题

就是一个简单的用POST提交请求的问题

从Chrome一比一抄下来的,同样的headers,同样的请求参数,在postman上做测试,一开始没注意Content-Type,也是一直请求不到,后来改成application/x-www-form-urlencoded就可以完美请求到了,但是搬到PHP代码里就死活请求不到,一直提示参数为空。

在php代码里headers和请求参数是绝对不会错不会少的,这点我确认了一个通宵了。那些不重要的就不说了,Content-Type肯定设置的application/x-www-form-urlencoded

并且提交的数组已经用http_build_query转化了,后来我又尝试手拼字符串等等方式,都不行

我特么心态崩了了,这到底是里哪里的问题

字符串编码的问题?我用urlencode挨个参数折腾了一遍也不行。

文件编码的问题?我文件存储为UTF8 BOM格式了。

PHP版本的问题?我用的是7.3.4,尝试换了版本,尝试了修改默认的字符类型也不行。

apache或者nginx的问题,这两个环境都试过了都不行

能尝试的都尝试过了。。。求遇到过此类问题的大神赐教,百度的就别来了,能搜索的相关的我一晚上已经看了几百篇都尝试过

这个你用fiddler抓包对比下,除非服务器有ip的禁用,否则只要你的提交和浏览器的一样,肯定可以的。

实在不行你先在浏览器里 copy curl ,再找个linux服务器试试,看返回什么

http_build_query与Content-Type:application/x-www-form-urlencoded二选一即可