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