https请求发送application/json数据

最近因工作需求要和腾讯某部对接,对方给出的接口一直无法测通,想来不应是他们的错误。用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格式数据的文章(接口开发)。完美!

猜你喜欢

转载自blog.csdn.net/qq_32737755/article/details/78932539