java5 --调用接口工具类
2022/2/11 17:15:16
本文主要是介绍java5 --调用接口工具类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
写了一个可以调用的接口的工具类
package com.switchcloudonemachineonegear.utils; /** * @author songxue * @date 2022-01-19 16:52 */ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.utils.URIBuilder; import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import java.io.IOException; import java.net.URI; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class RequestUtil { /** * 带参数的get请求 * @param url * @param param * @return String */ public static String doGet(String url, Map<String, String> param) { // 创建Httpclient对象 CloseableHttpClient httpclient = HttpClients.createDefault(); String resultString = ""; CloseableHttpResponse response = null; try { // 创建uri URIBuilder builder = new URIBuilder(url); if (param != null) { for (String key : param.keySet()) { builder.addParameter(key, param.get(key)); } } URI uri = builder.build(); // 创建http GET请求 HttpGet httpGet = new HttpGet(uri); // 执行请求 response = httpclient.execute(httpGet); // 判断返回状态是否为200 if (response.getStatusLine().getStatusCode() == 200) { resultString = EntityUtils.toString(response.getEntity(), "UTF-8"); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (response != null) { response.close(); } httpclient.close(); } catch (IOException e) { e.printStackTrace(); } } return resultString; } /** * 不带参数的get请求 * @param url * @return String */ public static String doGet(String url) { return doGet(url, null); } /** * 带参数的post请求 * @param url * @param param * @return String */ public static Map<String, Object> doPost(String url, Map<String, String> param) { // 创建Httpclient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); CloseableHttpResponse response = null; List<Map<String, Object>> resultList = new ArrayList<>(); Map<String, Object> result = new HashMap<>(); String resultString = ""; try { // 创建Http Post请求 HttpPost httpPost = new HttpPost(url); // 创建参数列表 if (param != null) { List<NameValuePair> paramList = new ArrayList<>(); for (String key : param.keySet()) { paramList.add(new BasicNameValuePair(key, param.get(key))); } // 模拟表单 UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList); httpPost.setEntity(entity); } // 执行http请求 response = httpClient.execute(httpPost); resultString = EntityUtils.toString(response.getEntity(), "utf-8"); } catch (Exception e) { e.printStackTrace(); } finally { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } Map<String, Object> resultMap = new HashMap<>(); resultMap.put("total", resultString); resultList.add(resultMap); return JSON.parseObject(resultString, new TypeReference<Map<String, Object>>() { }); } /** * 帶token參數的post请求 * @param url * @param headerMap * @return String */ public static Map<String, Object> doPostHeader(String url, Map<String, String> headerMap) { // 创建Httpclient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); CloseableHttpResponse response = null; List<Map<String, Object>> resultList = new ArrayList<>(); Map<String, Object> result = new HashMap<>(); String resultString = ""; try { // 创建Http Post请求 HttpPost httpPost = new HttpPost(url); //头 if (headerMap != null && !headerMap.isEmpty()) { headerMap.forEach((key, value) -> { httpPost.addHeader(key, value); }); } // 执行http请求 response = httpClient.execute(httpPost); resultString = EntityUtils.toString(response.getEntity(), "utf-8"); } catch (Exception e) { e.printStackTrace(); } finally { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } Map<String, Object> resultMap = new HashMap<>(); resultMap.put("total", resultString); resultList.add(resultMap); return JSON.parseObject(resultString, new TypeReference<Map<String, Object>>() { }); } /** * 不带参数的post请求 * @param url * @return String */ public static Map<String, Object> doPost(String url) { return doPost(url, null); } /** * 传送json类型的post请求 * @param url * @param json * @return String */ public static String doPostJson(String url, String json) { // 创建Httpclient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); CloseableHttpResponse response = null; String resultString = ""; try { // 创建Http Post请求 HttpPost httpPost = new HttpPost(url); // 创建请求内容 StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON); httpPost.setEntity(entity); // 执行http请求 response = httpClient.execute(httpPost); resultString = EntityUtils.toString(response.getEntity(), "utf-8"); } catch (Exception e) { e.printStackTrace(); } finally { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } return resultString; } }
调用接口方法
@Override @Scheduled(cron="0 0 0 * * ?") public Map<String, Object> getByURL() throws BaseException { System.out.println("------定时调度------"); // 连接设备管理登录接口 Map<String, String> param1 = new HashMap<>(); String username = "admin"; String password = "admin123"; param1.put("username",username); param1.put("password",password); String value = ""; Map<String, Object> maps = RequestUtil.doPost("http://127.0.0.53:9028/build/api/lo", param1); // 获取登录的token 用对象接,ConvertUtils是工具类 LoginURL login = ConvertUtils.parse(maps, LoginURL.class); // 获取得到的data信息 Map<String, String> data = login.getData(); for (Map.Entry<String, String> entry : data.entrySet()) { String key = entry.getKey(); value = entry.getValue(); } // 拿着token去访问设备列表接口,获取信息列表 Map<String, String> param = new HashMap<>(); param.put("token",value); Map<String, Object> objectMap = RequestUtil.doPostHeader("http://127.10.6.5:9926/build/api/po/dev/list", param); // 同样以对象来接 LonginDataURL login2 = ConvertUtils.parse(objectMap,LonginDataURL.class); // 只获取data中的信息 List<Map<String, Object>> dataList = login2.getData(); List<MachineVO> resultList = new ArrayList<>(); for(Map<String, Object> data1 : dataList) { MachineMsg msg = ConvertUtils.parse(data1, MachineMsg .class); MachineMsg gearMsg = MachineMsg .builder() .loNo(msg.getLoNo()) .build(); List<MachineMsg > gearMsgList = machineMsg Mapper.selectMachineMsg (msg); if (gearMsgList.size()==0) { MachineVOeachVO = new MachineVO(); // 如果没有就新增 MachineMsg Mapper.insertMachineMsg (msg); // copy same field CglibBeanCopierUtils.copy(msg, eachVO); resultList.add(eachVO); } else { // 有的话就更新 MachineVOeachVO eachVO = new MachineVOeachVO (); MachineMsg Mapper.updateMachineMsg (msg); // copy same field CglibBeanCopierUtils.copy(msg, eachVO); resultList.add(eachVO); } } return R.data(resultList); }
这篇关于java5 --调用接口工具类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南