wp_remote_post
是wordpress的内置函数,作用是向远程服务器提交post请求;
我们今天要说的坑主要表现在,我们使用其向阿里云的一台 服务器提交请求时返回了405错误。
这个是在开启了阿里云的应用防火墙后出现的情况;
最初认为是我们提交的数据包含了非法内容导致了拦截错误;
我们的调试方法是利用PostMan
工具完整的模拟了post数据请求,这个时候是正常的;
证明我们的数据没有问题;
那么问题出在哪呢;
我们查看了完整的WP_Http
类代码,发现我们在使用wp_remote_post
提交请求时附加了大量的header 信息,且是无法删除的,为了验证我们的判断;
我们使用了最基础的Curl函数来提交,更是验证了我们的判断;
最后我们的解决方法是使用wordpress 的WP_Http_Curl
类进行请求,问题得到解决!
今天思路有点乱,胡乱坚持写一遍吧!为了度娘我也是拼了。