httpclient调用京东万象数字营销频道新闻api实例
本人在使用httpclient做练习的时候,偶然发现京东万象上有一个免费的频道新闻调用api,故尝试之,因为官网文档只给出的java代码都是封装后的,所以我自己写了一遍,又写了一些注释。分享代码,供大家参考。
下面是具体的调用代码:
1public void testDemo() throws JSONException, UnsupportedOperationException, IOException {2 String url = "https://way.jd.com/jisuapi/get";//设置接口地址3 //设置参数4 JSONObject jsonObject = new JSONObject();5 jsonObject.put("channel", channel[1]);6 jsonObject.put("num", "5");7 jsonObject.put("start", "0");8 jsonObject.put("appkey", APPKEY);9 String uri = changeJsonToArguments(jsonObject);//获取uri
10 HttpGet get = new HttpGet(url+uri);//创建并实例化get接口
11 JSONObject response = getHttpResponse(get);//获取响应
12 output(response);//输出相应实体
13 testOver();//关闭客户端
14 }
下面是获取相应的方法(其中的封装方法已略去):
1/**2 * 获取响应实体3 * <p>会自动设置cookie,但是需要各个项目再自行实现cookie管理</p>4 * <p>该方法只会处理文本信息,对于文件处理可以调用两个过期的方法解决</p>5 *6 * @param request 请求对象7 * @return 返回json类型的对象8 */9 public static JSONObject getHttpResponse(HttpRequestBase request) {
10 if (!isRightRequest(request)) return new JSONObject();
11 beforeRequest(request);
12 JSONObject res = new JSONObject();
13 RequestInfo requestInfo = new RequestInfo(request);
14 if (HEADER_KEY) output("===========request header===========", Arrays.asList(request.getAllHeaders()));
15 long start = Time.getTimeStamp();
16 try (CloseableHttpResponse response = ClientManage.httpsClient.execute(request)) {
17 long end = Time.getTimeStamp();
18 long elapsed_time = end - start;
19 if (HEADER_KEY) output("===========response header===========", Arrays.asList(response.getAllHeaders()));
20 int status = getStatus(response, res);
21 JSONObject setCookies = afterResponse(response);
22 String content = getContent(response);
23 int data_size = content.length();
24 res.putAll(getJsonResponse(content, setCookies));
25 int code = iBase == null ? -2 : iBase.checkCode(res, requestInfo);
26// new AlertOver("响应状态码错误:" + status, "状态码错误:" + status, requestInfo.getUrl(), requestInfo).sendSystemMessage();
27 MySqlTest.saveApiTestDate(requestInfo, data_size, elapsed_time, status, getMark(), code, LOCAL_IP, COMPUTER_USER_NAME);
28 } catch (Exception e) {
29 logger.warn("获取请求相应失败!", e);
30 if (!SysInit.isBlack(requestInfo.getHost()))
31 new AlertOver("接口请求失败", requestInfo.toString(), requestInfo.getUrl(), requestInfo).sendSystemMessage();
32 } finally {
33 HEADER_KEY = false;
34 if (!SysInit.isBlack(requestInfo.getHost())) {
35 if (requests.size() > 9) requests.removeFirst();
36 boolean add = requests.add(request);
37 }
38 }
39 return res;
40 }
下面是解析响应实体的封装方法:
1 /**2 * 根据响应获取响应实体3 *4 * @param response5 * @return6 */7 public static String parseResponse(CloseableHttpResponse response) {8 HttpEntity entity = response.getEntity();// 获取响应实体9 String content = EMPTY;
10 try {
11 content = EntityUtils.toString(entity, DEFAULT_CHARSET);// 用string接收响应实体
12 EntityUtils.consume(entity);// 消耗响应实体,并关闭相关资源占用
13 } catch (Exception e1) {
14 logger.warn("解析响应实体异常!", e1);
15 }
16 return content;
17 }
下面是获取到的信息:
1{"code":"10000"2"charge":false3"msg":"查询成功"4"result":{"msg":"ok"5"result":{"num":"5"6"channel":"新闻"7"list":[{"src":"澎湃新闻"8"weburl":"http://news.sina.com.cn/c/nd/2017-08-26/doc-ifykiqfe1818402.shtml"9"time":"2017-08-26 17:08"
10"pic":""
11"title":"北京市食药监局:海底捞限期一个月实现后厨公开"
12"category":"news"
13"content":"<p class=\"art_p\">原标题:北京市食药监局:海底捞北京所有门店限期一个月内后厨公开</p><p class=\"art_p\">@北京青年报 官方微博8月26日消息,2017年8月25日,有媒体反映本市“海底捞”劲松店、太阳宫店存在经营场所卫生条件存在问题等违规行为。北京市食药监局立即对上述两家门店进行立案调查,并对四川海底捞餐饮股份管理有限公司位于北京地区的1家中央厨房和26家门店开展全面检查,第一时间责任约谈该公司北京地区负责人。</p><p class=\"art_p\">今天下午,北京市食药监局再次约谈“海底捞”北京公司,将本次对“海底捞”全面检查发现的问题进行通报,问题包括消毒记录不全、餐饮具混放、未戴工作帽及口罩等,要求“海底捞”总部落实食品安全主体责任,全面进行限期整改,并按照《关于海底捞火锅北京劲松店、北京太阳宫店事件处理通报》中所承诺,主动向社会公开整改情况,主动接受社会监督。</p><p class=\"art_p\">同时,北京市食药监局表示,将把上述检查发现问题的门店记入北京市企业信用信息平台,并在第二年度餐饮服务单位量化分级中实施减分降级。</p><p class=\"art_p\">此外,要求“海底捞”总部按照承诺对北京各门店实现后厨公开、信息化、可视化,限期一个月完成,同时北京地区负责人能够主动对各门店进行随时检查。</p>"
14"url":"http://news.sina.cn/gn/2017-08-26/detail-ifykiqfe1818402.d.html?cre=tianyi&mod=wnews&loc=9&r=25&doct=0&rfunc=100&tj=none&tr=25"}]}
15"status":"0"}}
最后
俺叫小枫,一个成天想着一夜暴富的测试员
(1140267353)一起成长一起加油的伙伴群!软件测试,与你同行!
群内可领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!
点赞关注不迷路!!!【三连ღ】,有问题也可私聊哟~(*╹▽╹*)
httpclient调用京东万象数字营销频道新闻api实例相关推荐
- 新闻API采集,打造高效自媒体
在信息时代,新闻报道已经不再是传统媒体的专属领域,越来越多的个人或团体开始涉足自媒体领域.但是,如何获取海量.全面.及时的新闻信息成为了自媒体从业者们面临的重要问题.这时候,新闻API采集技术应运而生 ...
- 深度洞见|起底元宇宙风潮,如何重塑未来数字营销?
这是神策研究院深度洞见系列文章的第六期,本期我们谈一谈元宇宙营销的未来和品牌应做的准备.本文共计 3360+ 字,阅读时间约 8 分钟. 元旦期间,元宇宙平台 Ezek 联合周杰伦名下潮牌 PHANT ...
- 短信验证码实现(京东万象第三方接口)
在网页上我们经常见到有短信验证的功能,他是如何实现的呢? 需要的技术: springboot后端 HttpClientUtils工具类 该类是帮助连接其它网站的一个工具类,现在已经出到了第三个版本(后 ...
- 技术推动产业变革 京东万象通过区块链解决数据流通顽疾
对于政府来说,数据流通该不该管,谁来管,怎么管? 对于数据源提供者来说,经济效益不明显,维权困难: 对于购买者来说,所买数据是否合法,数据质量如何,价格是否合理? 数据交易是否是个人信息的倒买倒卖行为 ...
- 京东万象:通过以太坊联盟链解决数据流通的信任难题
在互联网刚刚兴起的时候,大多数人认为它只是昙花一现. 美国MIT专家那时曾预测,大多数人很快都会使用网络浏览新闻而不是报纸时,主流媒体还对他进行了一番冷嘲热讽.如今20多年过去了,我们将会看到区块链技 ...
- TP5后端,VUE前端请求京东万象菜谱大全
写这个代码的收获: 1: http 请求 https 有一个证书验证(我这里给它关了,接口的数据就进来了) 2: 对后端的一些参数过滤(给默认值, 或者直接拒绝服务) 代码演示效果: 1: 前端VUE ...
- 首届数字营销在线选型节:怎样抓住B2B的风口
6月25日,由商业新知主办的业界首个数字营销产品在线推广与交易盛典活动--"数字营销在线选型节"在北京召开了新闻发布会. 商业新知是国内领先的商业创新知识与商业合作伙伴选型一站式互 ...
- 2016数字营销趋势:转型和颠覆
关于数字营销趋势,绝大多数懂行的机构和专家已经不再局限于某一种平台或者技术的分析,而把目光放在了更核心的消费趋势和数字转型研究上. 内容营销.营销自动化.原生广告以及程序化购买等过去被认为是「营销趋势 ...
- [转载]明天的数字营销分析工具2
上一篇文章:[转载]明天的数字营销分析工具1 工具三:HeapAnalytics HeapAnalytics是另外一个很具有前瞻性的解决方案.这个工具非常符合我在上集中说的"去技术化&quo ...
最新文章
- 挨踢脱口秀精选集汇总
- asp.net ajax技巧6
- Spring Cloud Eureka 属性配置中文说明文档
- 计算机文化课每个人都要学吗,计算机文化基础课程
- java9 javascript_JS(JavaScript)的j进一步了解9(更新中···)
- Xcode中的iOS工程模板
- linux 新建文件夹命令
- java 3dm_3dm游戏运行库合集安装包-游戏运行库合集安装包下载v3.0DM整理-西西软件下载...
- 华为云计算IE面试笔记-Fusionsphere架构及组件介绍(服务器虚拟化解决方案)
- matlab x~=0
- KVM实验二 pepsi-wyl
- POJ1417 True Liars —— 并查集 + DP
- URP SMAA 细品
- mac的angular/cli安装及踩坑记录
- 计算机专业毕设太难做不出来怎么办?
- C语言学习(1)VScode配置C语言环境(超详细)
- RSD 遥感数据处理——对象分析
- uniapp返回上一页携带参数,两种方法,实测有效
- 七夕到了,程序员怎么过七夕
- 干选机的工作原理与维护
热门文章
- MongoDB使用中的一些问题
- python 如何计算平方、次方?平方根、方根?(math.pow()、math.sqrt())
- DB2 TSA资源查看
- 基于VS Code搭建通用ARM微控制器开发平台
- 在phpMyAdmin使用用户口令登陆(转)
- AUTOCAD二次开发工具
- python定向爬取wallhaven壁纸
- 期末余额 = 期初余额 + 本期增加发生额 - 本期减少发生额
- 虚拟pdn服务器,【转载】EPS中的PDN连接
- C++算法:.盛最多的水的容器:(双指针,夹逼法)