调接口获取数据的几种方式

package com.cuslink.visual.controller;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.cuslink.visual.pojo.DataParam;

public class GroundData {
@GetMapping ("/topicList")
@ResponseBody
public Map<String, Object> HttpGetTopList() throws IOException {
BufferedReader in = null;
String urlNameString = “http://10.97.128.167/search/client/search/topic”;
try {
URL realUrl = new URL(urlNameString);
URLConnection connection = realUrl.openConnection();
connection.setRequestProperty(“accept”, “/”);
connection.setRequestProperty(“Content-Type”, “application/json;charset=UTF-8”);
connection.setRequestProperty(“connection”, “Keep-Alive”);
connection.setRequestProperty(“user-agent”, “Mozilla/4.0 (compatible; MSIE 5.0; Windows NT;DigExt)”);
connection.setRequestProperty(“whoami”, “cci-haiguan”);
connection.connect();
InputStream inputStream = connection.getInputStream();

            BufferedReader isr = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));
            int len = 0;
            byte[] rs = new byte[1024];
            String result = "";
            String s = "";
            while ((s = isr.readLine()) != null) {
                result += s;
            }
            JSONObject fromObject = JSONObject.parseObject(result);
            JSONArray h986Array = JSONArray.parseArray(fromObject.getString("data"));

            ArrayList arrayList = new ArrayList();
            for (Object object : h986Array) {
                Map map = JSONObject.parseObject(JSONObject.toJSONString(object), Map.class);
                String object3 = map.get("children").toString();
                JSONArray parseArray = JSONArray.parseArray(object3);
                for (Object object4 : parseArray) {
                    Map map1 = JSONObject.parseObject(JSONObject.toJSONString(object4), Map.class);
                    String objId = (String) map1.get("objId");
                    String primaryTableId = (String) map1.get("primaryTableId");
                    Object clsName = map1.get("clsName");
                    Map<String, Object> hashMap = new HashMap<>();
                    hashMap.put("topic", objId);
                    hashMap.put("table" , primaryTableId);
                    hashMap.put("clsName", clsName);
                    arrayList.add(hashMap);

                }

            }
            Map<String, Object> stringObjectHashMap = new HashMap<>();
            stringObjectHashMap.put("row",arrayList);
            return stringObjectHashMap;
        } catch (Exception e) {
            System.out.println("发送GET请求出现异常!" + e);
            e.printStackTrace();
        }
        // 使用finally块来关闭输入流
        finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
        return null;
    }

    @PostMapping("/yunqin")
    @ResponseBody
    public Map<String, Object> yunqinData(@RequestBody Map<String, String> params) {
        String ip="http://10.97.128.167";
        String url=ip+"/search/client/search";
        String key=params.get("key");
        String topic=params.get("topic");
        String table=params.get("table");
        int from = Integer.parseInt(params.get("from"));
        int size=Integer.parseInt(params.get("size"));
        String json = "{\r\n" +
                "	\"key\":\""+key+"\",\r\n" +
                "	\"topic\":\""+topic+"\",\r\n" +
                "	\"table\":\""+table+"\",\r\n" +
                "	\"from\":"+from+",\r\n" +
                "	\"size\":"+size+",\r\n" +
                "	\"isAcc\":false\r\n" +
                "}";
        String datatotal = httpPost(url,json);
        JSONObject parseObject = JSON.parseObject(datatotal);
        String datastring = parseObject.getString("data");
        JSONObject data = JSON.parseObject(datastring);
        Map map1 = JSONObject.parseObject(JSONObject.toJSONString(data), Map.class);
        Object total = map1.get("total");
        Object from1= map1.get("from");
        Object size1 = map1.get("size");
        String data1 = map1.get("data").toString();
        JSONArray objects = JSONArray.parseArray(data1);
        ArrayList<Map> datalist = new ArrayList<>();
        for (Object object : objects) {
            Map map2 = JSONObject.parseObject(JSONObject.toJSONString(object), Map.class);
            String href1 = (String) map2.get("href");
            String href= ip+href1.replaceFirst("search", "web");
            Object title =  map2.get("title");
            Object body =  map2.get("body");
            HashMap<String, Object> stringObjectHashMap = new HashMap<>();
            stringObjectHashMap.put("href",href);
            stringObjectHashMap.put("title",title);
            stringObjectHashMap.put("body",body);
            datalist.add(stringObjectHashMap);
        }
        Map<String,Object> map2 =new HashMap();
        map2.put("total",total);
        map2.put("from",from1);
        map2.put("size",size1);
        map2.put("data",datalist);

        return map2;
    }
    
    
    
   
    
    
    @PostMapping("/baidu")
    @ResponseBody
    public  Map<String, Object> baiduData(@RequestBody Map<String, Object> maps) {
        String key = (String) maps.get("key");
        int from = (int) maps.get("from");
        int size = (int) maps.get("size");
        String pageNo = String.valueOf(from);
        String pageSize = String.valueOf(size);
        Map<String, String> map=new HashMap<>();
        map.put("X-App-Id", "aies");
        map.put("X-Access-Token", "aies");
        map.put("q", key);
        map.put("pageNo", pageNo);
        map.put("pageSize", pageSize);
        String url="http://10.99.87.81:8080/search/site/search/aies_weba?";
        String s = httpPost(url, map);
        Map map1 = JSONObject.parseObject(s, Map.class);
        return map1;
    }
    
    
    
    public static String httpPost(String urlStr,Map<String,String> params){
        StringBuffer data = new StringBuffer();
        try {
            URL connect = new URL(urlStr);
            String XAppId= params.get("X-App-Id");
            String XAccessToken= params.get("X-Access-Token");
            String q = params.get("q");
            String pageSize =params.get("pageSize");
            String pageNo = params.get("pageNo");
            String fq = params.get("fq");
            String sort = params.get("sort");
            String fl = params.get("fl");
            Map<String,Object> hashMap = new HashMap<>();
            String pageSize1="2";
            hashMap.put("q", q);
            hashMap.put("pageSize",pageSize);
            hashMap.put("pageNo", pageNo);
            hashMap.put("qf", "title content_t");
            hashMap.put("hl.fl","title,content_t");
            String font="<font color='red'>";
            hashMap.put("hl.pre",font);
            hashMap.put("hl.post","</font>");
            hashMap.put("sort","score desc");
            if(fq!=null&&fq.length()!=0) {
                hashMap.put("fq", fq);
            }
            if(sort!=null&&sort.length()!=0) {
                hashMap.put("sort", sort);
            }
            if(fl!=null&&fl.length()!=0) {
                hashMap.put("fl", fl);
            }
            HttpURLConnection connection = (HttpURLConnection)connect.openConnection();
            connection.setDoOutput(true);
            connection.setDoInput(true);
            connection.setUseCaches(false);//post不能使用缓存
            connection.setInstanceFollowRedirects(true);
            connection.setRequestMethod("POST");//设置请求方式
            connection.setRequestProperty("Accept", "application/json");//设置接收数据格式
            connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");// 设置发送数据格式
            connection.setRequestProperty("X-App-Id", XAppId);//设置参数头
            connection.setRequestProperty("X-Access-Token", XAccessToken);//设置参数头
            OutputStreamWriter paramout = new OutputStreamWriter(connection.getOutputStream(),"UTF-8");
            String paramsStr = "";   //拼接Post 请求的参数
            for(String param : hashMap.keySet()){
                paramsStr += "&" + param + "=" + hashMap.get(param);
            }
            if(!paramsStr.isEmpty()){
                paramsStr = paramsStr.substring(1);
            }
            paramout.write(paramsStr);
            paramout.flush();
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    connection.getInputStream(), "UTF-8"));
            String line;
            while ((line = reader.readLine()) != null) {
                data.append(line);
            }

            paramout.close();
            reader.close();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return data.toString();
    }
    
    
    public static String httpPost(String urlStr,String json){
        StringBuffer data = new StringBuffer();
        try {
            URL connect = new URL(urlStr);
            HttpURLConnection connection = (HttpURLConnection)connect.openConnection();
            connection.setDoOutput(true);
            connection.setDoInput(true);
            connection.setUseCaches(false);//post不能使用缓存
            connection.setInstanceFollowRedirects(true);
            connection.setRequestMethod("POST");//设置请求方式
            connection.setRequestProperty("Content-Type", "application/json");// 设置发送数据格式

// connection.setRequestProperty(“whoami”, “cci-haiguan”);
OutputStreamWriter paramout = new OutputStreamWriter(connection.getOutputStream(),“UTF-8”);
paramout.write(json);
paramout.flush();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), “UTF-8”));
String line;
while ((line = reader.readLine()) != null) {
data.append(line);
}
paramout.close();
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
return data.toString();
}

    public static void main(String[] args) {
		DataParam dataParam = new DataParam();
		dataParam.setAPP_ID("924169EA-8505-4B19-9177-CB437E6DE5EE");
		dataParam.setMESSAGE_CODE("Z001");
		net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(dataParam);
		String jsonStr = jsonObject.toString();
		String url = "http://10.200.5.10/ExtApi/Api/Data/Query";
		String data = httpPost(url,jsonStr);
		String datas = "";
		
		JSONObject json = JSONObject.parseObject(data);
		datas = json.getString("Datas");

// JSONArray jon = JSONArray.parseArray(datas); //json数组
List<Map<String, Object>> listObj = (List<Map<String,Object>>)JSONArray.parse(datas);
for(Map<String, Object> mapList:listObj) {
for(Map.Entry entry: mapList.entrySet()) {
System.out.println(“key:”+entry.getKey()+“value:”+ entry.getValue());
}
}
// for(int i =0; i<jon.size();i++) {
// JSONObject don = jon.getJSONObject(i);
// Map<String, Object> xxMap = don.parseObject(don);
// }

// Map<String, Object> jsonToMap = JSONObject.parseObject(datas);
// Iterator<Entry<String, Object>> it = jsonToMap.entrySet().iterator();
// while(it.hasNext()) {
// Entry<String, Object> entry = it.next();
// System.out.println(“key:”+entry.getKey()+“value:”+entry.getValue());
// }
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值