通过调用API接口,获取需要的数据信息。API接口返回的数据为json格式。

转存失败重新上传取消
public class query {public static JSONArray result(int typeId, int page) {// 接口地址String requestUrl = "https://www.xxx.com/xxxxx";// params用于存储要请求的参数,我的请求参数为typeId,pageMap<String, Object> params = new HashMap<String, Object>();params.put("typeId", typeId);params.put("page", page);// 调用httpRequest方法,这个方法主要用于请求地址,并加上请求参数String string = httpRequest(requestUrl, params);// 处理返回的json数据,获取data JSONArrayJSONArray iwanna = JSONObject.fromObject(string).getJSONArray("data");//处理JSONArray,取出需要的newsId与title值JSONArray iwanna1 = new JSONArray();        JSONObject row = null;  for (int i = 0; i < iwanna.size(); i++) {  row = iwanna.getJSONObject(i);JSONObject row1=new JSONObject();row1.put("newsId",row.get("newsId"));row1.put("title",row.get("title"));iwanna1.add(row1);}return iwanna1;}public static String httpRequest(String requestUrl, Map<String, Object> params) {// buffer用于接受返回的字符StringBuffer buffer = new StringBuffer();try {// 建立URL,把请求地址给补全,其中urlencode()方法用于把params里的参数给取出来URL url = new URL(requestUrl + "?" + urlencode(params));//System.out.println(url);// 打开http连接HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection();httpUrlConn.setDoInput(true);httpUrlConn.setRequestMethod("GET");//请求头部信息,根据实际需求添加httpUrlConn.addRequestProperty("id", "xxx");httpUrlConn.addRequestProperty("secret", "xxxxx");httpUrlConn.connect();// 获取输入的参数InputStream inputStream = httpUrlConn.getInputStream();InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");BufferedReader bufferedReader = new BufferedReader(inputStreamReader);// 将bufferReader的值给放到buffer里String str = null;while ((str = bufferedReader.readLine()) != null) {buffer.append(str);}// 关闭bufferReader和输入流bufferedReader.close();inputStreamReader.close();inputStream.close();inputStream = null;// 断开连接httpUrlConn.disconnect();} catch (Exception e) {e.printStackTrace();}// 返回字符串return buffer.toString();}public static String urlencode(Map<String, Object> data) {// 将map里的参数变成像typeId=###&page=###&的样子StringBuilder sb = new StringBuilder();for (Map.Entry i : data.entrySet()) {try {sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue() + "", "UTF-8")).append("&");} catch (UnsupportedEncodingException e) {e.printStackTrace();}}return sb.toString();}// 测试是否有效public static void main(String[] args) {System.out.println(result(509, 4));}}

转存失败重新上传取消

API接口返回的完整数据如下

{"code": 1,"msg": "数据返回成功!","data": [{"title": "海外破产谣言四起 留给王健林的时间不多了","imgList": ["http://cms-bucket.ws.126.net/2020/0416/9d9d0344j00q8uu3g001xc000zk00k0c.jpg"],"source": "新财富","newsId": "FAANASFF00259DLP","digest": "","postTime": "2020-04-16 07:31:52","videoList": null},{"title": "4月多地出台楼市调控政策 刚需释放房企销售\"回温\"","imgList": ["http://cms-bucket.ws.126.net/2020/0416/332d09fcp00q8uu8j0056c0009c005uc.png"],"source": "中国网财经","newsId": "FAAQ2DQK00259DLP","digest": "","postTime": "2020-04-16 08:19:40","videoList": null},{"title": "财经派云对话|张玮:疫情是否会加重逆全球化?","imgList": ["http://cms-bucket.ws.126.net/2020/0416/03c6931cj00q8uvfa009zc000s600e3c.jpg"],"source": "","newsId": "221127","digest": null,"postTime": "2020-04-16 08:37:08","videoList": null},{"title": "南财早新闻丨最新房价数据今日公布;欧美股市全线收跌,美油跌跌不休创18年新低","imgList": ["http://cms-bucket.ws.126.net/2020/0416/10cb86f2j00q8urz8000hc000a8006dc.jpg"],"source": "21世纪经济报道","newsId": "FAAN83HM05199NPP","digest": "","postTime": "2020-04-16 07:30:34","videoList": null},{"title": "高盛、美国银行、花旗等一季度利润跌超40%","imgList": null,"source": "金融界","newsId": "FAAL9OM40519QIKK","digest": "","postTime": "2020-04-16 06:56:17","videoList": null},{"title": "华为紧盯汽车:HiCar今年落地 野心不止车联网","imgList": ["http://cms-bucket.ws.126.net/2020/0416/ca71a10ep00q8utne00xtc001hc00zkc.png"],"source": "每日经济新闻","newsId": "FAAPB3S800258105","digest": "","postTime": "2020-04-16 08:06:56","videoList": null},{"title": "诺诚健华-B(09969)超额配股权获悉数行使 涉及3754.8万股","imgList": null,"source": "智通财经网","newsId": "FAAJOFT405198UNI","digest": "","postTime": "2020-04-16 06:29:23","videoList": null}]
}

转存失败重新上传取消

运行后,获得的数据为

[{"title": "海外破产谣言四起 留给王健林的时间不多了","newsId": "FAANASFF00259DLP",},{"title": "4月多地出台楼市调控政策 刚需释放房企销售\"回温\"","newsId": "FAAQ2DQK00259DLP",},{"title": "财经派云对话|张玮:疫情是否会加重逆全球化?","newsId": "221127",},{"title": "南财早新闻丨最新房价数据今日公布;欧美股市全线收跌,美油跌跌不休创18年新低","newsId": "FAAN83HM05199NPP",},{"title": "高盛、美国银行、花旗等一季度利润跌超40%","newsId": "FAAL9OM40519QIKK",},{"title": "华为紧盯汽车:HiCar今年落地 野心不止车联网","newsId": "FAAPB3S800258105",},{"title": "诺诚健华-B(09969)超额配股权获悉数行使 涉及3754.8万股","newsId": "FAAJOFT405198UNI",}]

转存失败重新上传取消

后续,通过newsId参数,调用另一个API接口,获取详细信息。

public class news {//获取新闻详细内容
public static String detail(int typeId, int page) {//调用query,获取newsIdJSONArray newsid=query.result(typeId,page);//循环获取到的newsId,得到新闻的详细内容for (int i = 0; i < newsid.size(); i++) {  JSONObject row = null; row = newsid.getJSONObject(i);System.out.println((String) row.get("title"));//调用details方法,获取System.out.println(details((String) row.get("newsId")));System.out.println("----------------------");}return "success";}public static String details(String newsId) {// 接口地址String requestUrl = "https://www.xxx.com/xxxxx";//与前部分接口调用相同Map<String, Object> params = new HashMap<String, Object>();params.put("newsId", newsId);String news = query.httpRequest(requestUrl,params);// 判断接口调用是否成功JSONObject judge = JSONObject.fromObject(news);//code=0接口调用失败if(judge.getInt("code")==0) {return judge.getString("msg");}//code=1接口调用成功if(judge.getInt("code")==1) {//处理返回的json数据并处理JSONObject iwanna = JSONObject.fromObject(news).getJSONObject("data");return iwanna.getString("content");}return "success";}public static void main(String[] args){System.out.println(detail(509,1));}
}

转存失败重新上传取消

运行,得到结果。转存失败重新上传取消

至此,调用结束。获取到需要的数据。

API接口调用并处理返回的json数据相关推荐

  1. 最新!中国天气网api接口调用,key获取方式,数据请求秘钥获取,城市id获取方法

    以前的天气获取方式已经不支持了,虽然能获取到数据,但是获取到的信息已经不对了. 中国天气网提供的最新接口需要数据请求秘钥key.而且有效期只有7天,用完了还要重新购买,很麻烦,但是获取到的内容绝对是最 ...

  2. 中国天气网api接口调用,key获取方式,数据请求秘钥获取,城市id获取方法

    以前的天气获取方式已经不支持了,虽然能获取到数据,但是获取到的信息已经不对了. 中国天气网提供的最新接口需要数据请求秘钥key.而且有效期只有7天,用完了还要重新购买,很麻烦,但是获取到的内容绝对是最 ...

  3. [小白向]Python使用request库调用API并获取返回的JSON数据包中的内容

    目录 对于参数可以直接写入链接中的接口(适用于参数较少时) 对于参数需要使用字典进行携带的接口(适用于请求头中参数较多时) 本文介绍了使用GET的方式调用API的方式,如需要使用POST方式,将代码中 ...

  4. matlab api接口调用json格式

    matlab 的api接口调用有2个函数,一个是webwrite,一个是webread,webwrite类似post,将数据写入 RESTful Web 服务:webread类似get,从 RESTf ...

  5. 个人微信api接口调用,推送微信好友群聊列表及返回

    个人微信api接口调用,推送微信好友群聊列表及返回 触发手机推送微信好友列表及返回/*** 触发手机推送微信好友列表* @author wechatno:tangjinjinwx* @blog htt ...

  6. php调用美图接口,网易美图 API 接口调用与请求方法详细教程

    原标题:网易美图 API 接口调用与请求方法详细教程 网易美图 API 接口在网上已经很多且大都封装成了 API 供别人调用.支持前台跨域请求,以POST方式提交图片即可.网易美图 API 接口会随机 ...

  7. 实现API接口调用--来源阿里云大学-归档

    # API的概念和基本实现 P.S.这篇文章的价值在于做了视频内容的复练,不用再盯着视频过一遍 from:来自阿里云大学的免费学习课程,实现API接口调用 时间戳:2020年8月21日11:00:15 ...

  8. Java: 聚合数据API接口调用城市天气预报

    Java: 聚合数据API接口调用城市天气预报 点击进入[数据聚合_数据接口调用_开发者数据API开放平台](官网) 在pom文件中,加入依赖 <!--返回json数据--><dep ...

  9. 淘宝天猫京东拼多多苏宁抖音等平台关键词监控价格API接口(店铺商品价格监控API接口调用展示)

    淘宝京东拼多多苏宁抖音等平台关键词监控价格API接口(店铺商品价格监控API接口调用展示)代码对接如下: 1.公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼 ...

  10. PRA2020.4 平台 API 接口调用

    关注RPA请访问网站: www.i-search.com.cn 学Python,用RPA,欢迎下载使用 www.i-search.com.cn/index.html?from=line1 适用版本 适 ...

最新文章

  1. python一级考试题目_全国青少年软件编程(Python)等级考试试卷(一级)br测试卷-20191114123907422...
  2. Qt学习笔记5-信号槽机制
  3. 绿联 蓝牙适配器 linux,绿联蓝牙适配器
  4. C# 3.0新特性初步研究 Part5:匿名类型
  5. 计算机二级考试试题在线看,【TOP182015年全国计算机二级考试试题题库.doc文档免费在线阅读材料】...
  6. ARM汇编杂项伪指令
  7. Ros学习笔记(四)创建Ros消息
  8. 经典C语言学习教程资料
  9. 用友T3如何反结账,反记账
  10. 编程中实例是什么?什么是实例?实例化又是什么?什么是类?什么是对象?
  11. 简单 Python 快乐之旅之:Python 基础语法之 JSON 专题
  12. 计算机系统是日语,如何在计算机系统中添加日语输入法
  13. 怎样自己制作一个小程序?新手必知流程!
  14. 高层建筑的定义及分类
  15. 计算机处理器缓存参数,如何查看CPU型号和主频、缓存、接口等参数
  16. 微信小程序真机调试:createEvent is not a function
  17. JS获取浏览器UA(User Agent 用户代理)方法
  18. Unity3d UnityEditor编辑器定制和开发插件
  19. C#中invoke和beginInvoke
  20. cognos学习笔记

热门文章

  1. 平衡小车之家--风力摆开箱实录(附资料)
  2. 15个素材下载网站,从此不做「伸手党」!
  3. 西门子PLC S7 200 SMART 没有触摸屏的仿真
  4. 台式计算机usb口接触不良,usb鼠标接触不良,手把手教你usb鼠标接触不良
  5. 用Java实现24点游戏
  6. 有了这款神器,什么吃灰文件都统统现形~极速搜索工具Everthing
  7. 汉诺塔递归算法python详细解析图_汉诺塔递归算法的图解(自我总结)
  8. Java生成随机数的几种方式
  9. Java 生成随机数并进行查找
  10. 我的工程学导论学习心得1