向API 接口发送和接收json数据(php,js)

来源:互联网 发布:汽车app软件下载 编辑:程序博客网 时间:2024/04/30 12:16

PHP

1. 发送json数据,POST

private function https_request($url, $data)    {        $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);            $output = curl_exec($curl);        return $output;    }

需要传进来json格式下的data和url接口
在微信接口中,为了避免出现 unicode编码的问题,传进来的data数据要经过处理,处理过程:

//数组形式的$msg['type'] = '....';$msg['text'] = '....';$msg['text] = urlencode($msg['text']);$data = urldecode(json_encode($msg));

2. 接收json数据

上方的代码https_request,已经返回了json数据

//把返回值json_decode一下,记得后面的true不能掉,如果没写true,默认返回的值是打印msg['text']出来是这样的".....",写上true,打印出来是 .... , 即不带双引号。$return = json_decode($res,true);

JS

利用ajax可以进行接口调用,但是注意跨站问题,跨站是不允许调用的。

var request2 = new XMLHttpRequest();                                       request2.open("GET","http:......&text="+text+"&type="+type);request2.send(null);                                     request2.onreadystatechange = function() {                                       if(request2.readyState == 4 && request2.status == 200) {      var result = request2.responseText;      //进行的操作就是去掉双引号      result = eval("(" + result + ")");

直接在URL中带过去数据,具体可以参考XMLHttpRequest(),4,200是返回值,具体的也要参考文档。

0 0
原创粉丝点击