如何用php调用外部接口json数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用php调用外部接口json数据相关的知识,希望对你有一定的参考价值。
两种比较简单的方法:
1、使用curl
$url = "http://www.xxxxxxxxxx.com/";$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT , 30);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
2、使用file_get_contents
$output = file_get_contents($url);echo $output;
3 、使用socket 也是可以的
参考技术A可以使用php+crul模拟请求接口,如curl模拟post请求
$url = "http://localhost/web_services.php";$post_data = array ("username" => "bob","key" => "12345");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// post数据
curl_setopt($ch, CURLOPT_POST, 1);
// post的变量
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
//打印获得的数据
print_r($output); 参考技术B curl 参考技术C 不会 参考技术D 不会
如何用java语法解析接口返回的json串?
起因:做接口测试的时候经常需要对接口返回的响应数据(一般都是json字符串格式)做解析
下面是一个接口响应数据的例子:
下面是对上面接口返回的json格式字符串的解析
Object dataObj=JSONPath.read(content,"$.data"); JSONObject dataJsonObj=JSON.parseObject(dataObj.toString()); //获取key="searchResult"的值,是一个JSON数组 JSONArray searchResultArray=dataJsonObj.getJSONArray("searchResult"); //判断searchResult的元素个数是否大于等于1 if(searchResultArray.size()<1){ //报错 }
//获取searchResult[0]
Object searchResult1=searchResultArray.get(0);
JSONObject searchResult1JsonObj=JSON.parseObject(searchResult1.toString());
JSONArray itemsArray=searchResult1JsonObj.getJSONArray("items");
// 判断items的元素个数是否大于等于1
if(itemsArray.size()<1){
//报错
}
Object items0=itemsArray.get(0);
Object businessObject=JSONPath.read(items0.toString(),"$.business");
JSONObject businessJsonObj=JSON.parseObject(businessObject.toString());
String hasAds=JSONPath.read(businessJsonObj.toString(),"$.hasAds").toString();
//判断hasAds的值
if(hasAds.equals("false")){
//...
}
以上是关于如何用php调用外部接口json数据的主要内容,如果未能解决你的问题,请参考以下文章