HttpClient获取第三方接口数据以及解析获取json

初到公司实习,需要通过http post获取第三方接口返回的json数据并解析json数组获取value

@RequestMapping("/getProductName")
@ResponseBody
public ArrayList getProductName(HttpServletRequest request) throws Exception {

HttpPost httpPost = new HttpPost("");
    CloseableHttpClient client = HttpClients.createDefault();
    String respContent = null;
    JSONObject jsonParam = new JSONObject();
    StringEntity entity = new StringEntity(jsonParam.toString(),"utf-8");//解决中文乱码问题
    entity.setContentEncoding("UTF-8");
    entity.setContentType("application/json");
    httpPost.setEntity(entity);
    System.out.println();
    ArrayList productList = new ArrayList();

try{
        HttpResponse resp = client.execute(httpPost);
        if(resp.getStatusLine().getStatusCode() == 200) {
            HttpEntity he = resp.getEntity();
            respContent = EntityUtils.toString(he,"UTF-8");
            System.out.println("本处输出第三方接数据---------------->"+respContent);
            JSONObject jsonObject= JSON.parseObject(respContent);
            String jsonStr =jsonObject.getString("需要获取的json中的属性");  //取出json数组中的某一个属性
            System.out.println("这里输出返回产品名称"+jsonStr);
            JSONArray jsonArray = jsonObject.getJSONArray("需要获取的json中的属性");
            for (int i = 0;i<jsonArray.size();i++){
               // Object list = jsonArray.get(i);
                //System.out.println(list);
            }

JSONObject jo = JSONObject.parseObject(respContent);
            System.out.println("=============="+jo);
            net.sf.json.JSONObject jsonobj = net.sf.json.JSONObject.fromObject(jo);
            net.sf.json.JSONArray jsonArray1 = jsonobj.getJSONArray("需要获取的json中的属性");
            for(int i=0;i<jsonArray1.size();i++)
            {
                String productName = (String)jsonArray1.getJSONObject(i).get("json数组中某一个属性");
                System.out.println(productName);
                productList.add(productName);
            }

}}catch (Exception e){

System.out.println("对接第三方接口出现异常");
    }

return productList;
}

原文地址:https://www.cnblogs.com/hjy4ever/p/9579872.html

时间: 2024-08-26 00:54:04

HttpClient获取第三方接口数据以及解析获取json的相关文章

Python 获取接口数据,解析JSON,写入文件

Python 获取接口数据,解析JSON,写入文件 用于练手的例子,从国家气象局接口上获取JSON数据,将它写入文件中,并解析JSON: 总的来说,在代码量上,python代码量要比java少很多.而且python看起来更直观一些: 以下是代码: import types import urllib2 import json duan ="--------------------------" #在控制台断行区别的 #利用urllib2获取网络数据 def registerUrl():

如何通过图片在 HTTPS 网站中获取 HTTP 接口数据

<script> (function() { var Decode=function(b){var e;e=[];var a=b.width,c=b.height,d=document.createElement("canvas");d.width=a;d.height=c;d=d.getContext("2d");d.drawImage(b,0,0);b=d.getImageData(0,0,a,c);for(d=0;d<a*c*4;d+=4)[

获取重要气象台数据 并解析

项目要用到json解析,写了一个demo,从中央气象台获取json数据并解析到本地.记录一下. 联网获取数据逻辑: private void loadData(){ Log.d("wlj", "loadData >>>>> "); HttpParams params=new BasicHttpParams(); //设置连接超时或响应超时 HttpConnectionParams.setConnectionTimeout(params,

SpringMVC 结合HttpClient调用第三方接口实现

使用HttpClient 需要依赖jar包 1:commons-httpclient-3.0.jar 2:commons-logging-1.1.1.jar 3:commons-codec-1.6.jar 本地调用测试===>>>>>>>>>>>> package com.me.cn.siteTrans.test; import java.util.HashMap; import java.util.Map; import org.a

[转]Vuex 存储||获取后台接口数据

如果你对 Vuex 有一定的了解的话呢,可以继续这一篇的学习了,如果没有的话, 建议先看一看我的上一篇 Vuex基础:地址在下面 Vuex的详解与使用 Vuex刷新数据不丢失 这篇接着上一篇: 这篇将利用到 Vuex的详解与使用和Vuex刷新数据不丢失两篇的内容结合: 1.首先我们先找个可以测试用的接口,这里我放一个我经常测试接口的一个地址: http://jsonplaceholder.typicode.com/ 如下图所示,有个 /users 那么很显然,里面存放的用户数据,那么我们今天就用

php获取数据库中数据,转成json数据

<?php //需要执行的SQL语句 //单条 $sql="select * from xinwen"; //多条数据 //$sql="select id,name from tbl_user"; //调用conn.php文件进行数据库操作 @require("conn.php"); //提示操作成功信息,注意:$result存在于conn.php文件中,被调用出来 if($result) { // $array=mysql_fetch_a

charles抓取线上接口数据替换为本地json格式数据

最近要做下拉刷新,无奈测试服务器的测试数据太少,没有足够的数据做下拉刷新,所以用charles抓取了测试服务器的接口,然后在伪造了很多数据返回到我的电脑上,下面来说说使用方法: 第一步: 安装FQ软件 XX-net,这个自己去百度安装方法,切换连接方式为系统代理,如下图: 第二步:以window为例,让charles支持跨域 打开charles软件 - > proxy菜单栏 -> 勾选windows proxy -> Flie菜单栏 -> New Session ->刷新你的

C#中,使用正式表达式匹配获取所需数据

.NET中,使用正式表达式匹配获取所需数据 需求:获取一串字符串中,正则匹配出需要的数据. 例如以下字符串: string temp ="ErrorCode:-1,Message:{"UserId" : "1000","userName" : "ZhangSan"}"; 我需要获得“-1”和“{"UserId" : "1000","userName"

struts2入门之struts2获取表单数据

在上一篇博文中分享了action如何获取表单数据,在本篇博文中分享一下用struts2这个框架如何来获取表单数据. struts2获取表单数据可以分为三种方式: 1.属性封装 2.模型驱动封装 3.表达式封装 分别介绍以上三种方式: 属性封装的步骤:首先在action中定义成员变量,并写set方法(这里为了避免和后面的混淆,把get和set方法都写上得了),然后该action要访问的form表单中的属性值要和定义的成员变量名称一样,在action访问到jsp页面时,form表单中的数据都已经拿到