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

本文介绍了如何使用PHP发送和接收JSON数据。在PHP中,重点讲解了POST方式发送JSON数据时处理Unicode编码问题的方法,以及接收JSON数据的过程。在JS部分,提到了利用Ajax进行接口调用时需注意的跨站问题,并提示通过XMLHttpRequest()处理数据返回状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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是返回值,具体的也要参考文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值