如何用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数据的主要内容,如果未能解决你的问题,请参考以下文章

BIRT 如何用 rest api 接口获取 json 做报表

如何用JQUERY的ajax请求HTTPS的接口???

如何用java web 调用天气接口

问大佬php中如何用 foreach解析json

如何用java语法解析接口返回的json串?

如何用 PHP 压缩 JSON?