最近因工作需求要和腾讯某部对接,对方给出的接口一直无法测通,想来不应是他们的错误。用postman测试了下竟然通了。。。再回头看我的代码,没错啊。。。一直用的都是一个https请求函数啊,微信公众号接口等都可以用的啊!
然后找啊找啊,想啊想啊。。。又和腾讯大牛沟通了下,原来他们的接口接收的数据是很严格的application/json格式。
大家了解下:application/json 四种常见的 POST 提交数据方式
http://blog.csdn.net/tycoon1988/article/details/40080691
在postman下默认的post请求就是application/json 这个格式的!!!
知道了问题所在,那就改造自己用的这个https函数吧
如下:
function https_request($url,$data=null){
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);
if(!empty($data)){
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
}
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
//Content-Type: application/json 修改人:你哥我。 下面这行是修改后增加的代码,就是配置设置host访问,发送的数据类型为application/json
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json; charset=utf-8',
'Content-Length: ' . strlen($data)
));
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
修改后!当当当~当! 可以了!通啦!
在之前我写过一篇php接收json格式数据的文章(跳板->),现在这篇为发送json格式数据的文章(接口开发)。完美!