首先在pom中加入

关于http需要的jar包
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.4.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.4.1</version>
</dependency>
json解析的jar包
<!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib -->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>

因为http请求完成之后返回的数据是json数据,所以我们需要用json的jar包来解析数据,下面是java代码

/**.
* @Description: TODO(调用接口获取数据)
* @author xiehj
* @date 2020年8月19日 下午3:20:05
* @version V1.0
*/ public class MpcStaffInfoUtil { //这里需要导入log的jar包
private static final Logger log = Logger.getLogger(MpcStaffInfoUtil.class);
/**
* 发送post请求的方法
*/
public static String pushPost(String code) {
//这里是判断code参数是否为空的判断
if(StringUtils.isNotBlank(code)) {
log.info("调用根据code查询数据接口的方法。");
} else {
log.info("调用查询全量数据接口的方法。");
}
//CloseableHttpClient httpClient = HttpClients.createDefault();
// 获得Http客户端(可以理解为:你得先有一个浏览器;注意:实际上HttpClient与浏览器是不一样的)
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
//HttpClient httpClient = new DefaultHttpClient();
//设置连接超时 connetionTimeout:指客户端和服务器建立连接的timeout,
//setSocketTimeout 设置连接超时
RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(60000)
.setSocketTimeout(60000).setConnectTimeout(120000).build();
//请求的url
String url = null;
//这里是根据code来判断到底该用配置文件里面的那个接口
if (StringUtils.isNotBlank(code)) {
//readParperties.getSftp这个方法地址 https://www.cnblogs.com/xhj-java/p/13536697.html
url = readParperties.getSfpt("/mpcstaffinfo.properties", "TEST_URL_CODE");
url = url + code;
} else {
url = readParperties.getSfpt("/mpcstaffinfo.properties", "TEST_URL");
}
log.info("请求的url:" + url);
//String url = "http://127.0.0.1:8080/hrbase-web/httpRestInterface/listStaffInfo?StaffCode="+code;
CloseableHttpResponse response = null;
//HttpResponse response = null;
try {
//替换空格
url= url.replaceAll(" ", "%20");
//连接远程服务
HttpPost httpPost = new HttpPost(url);
httpPost.setConfig(requestConfig);
/* InputStreamEntity ise = new InputStreamEntity(is, -1L);
httpPost.setEntity(ise);//设置传入流
*/
response = httpClient.execute(httpPost);
HttpEntity responseEntity = response.getEntity();
log.info("HTTP响应状态为:" + response.getStatusLine());
if (responseEntity != null) {
log.info("HTTP响应内容长度为:" + responseEntity.getContentLength());
// 主动设置编码,来防止响应乱码
String responseStr = EntityUtils.toString(responseEntity, StandardCharsets.UTF_8);
//log.info("HTTP响应内容为:" + responseStr);
return responseStr;
}
} catch (Exception e) {
e.printStackTrace();
}/*finally{
try {
// 释放资源
if (httpClient != null) {
httpClient.close();
}
if (response != null) {
response.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}*/
return null;
}
//StaffInfoEntity 是数据里面的实体类
public static List<StaffInfoEntity> getMpc(String code) {
String pushPost = MpcStaffInfoUtil.pushPost(code);
List<StaffInfoEntity> staToMpc = null;
JSONObject jsStr = JSONObject.fromObject(pushPost);
//result 是返回的数据的名称 即 map.put("result",list);
String string = jsStr.getString("result");
/*try {
String string = jsStr.getString("result");
} catch (JSONException e) {
System.out.println("取不到result的值!");
return staToMpc;
}*/
if(StringUtils.isNotBlank(string)) {
final Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();
final List<StaffInfoEntity> res = gson.fromJson(string, new TypeToken<List<StaffInfoEntity>>() {
}.getType());
return staToMpc;
}
return staToMpc;
}

http请求其他接口的utils的更多相关文章

  1. webapi+Task并行请求不同接口实例

    标题的名称定义不知道是否准确,不过我想表达的意思就是使用Task特性来同时请求多个不同的接口,然后合并数据:我想这种场景的开发对于对接过其他公司接口的人不会陌生,本人也是列属于之内,更多的是使用最原始 ...

  2. 代码片段:处理HTTP请求的接口

    以下程序用来获取用户传递过来的信息. 1.头文件 /* * 这个是处理HTTP请求的接口头文件 */ #define KEY_VALUE_MAX 1024 /* 键值的最大长度 */ typedef ...

  3. 通过HttpWebRequest请求https接口

    一.为什么进行代理接口的开发: 有些项目需要访问被墙了哒网站,比如前不久公司开发项目需要使用google地图的接口,而google在中国被墙了,所有打算做一个代理接口服务,将代理放到国外服务器上,通过 ...

  4. node请求下载接口时乱码

    先说下问题 之前做的一个项目,三端同时开发(PC.WEB.APP),由于架构方面的原因,服务均不对外开放,接口地址自然也就不对外暴露了,所有请求都要经过node转发,此为背景.... 网站有个扫描二维 ...

  5. python接口自动化(八)--发送post请求的接口(详解)

    简介 上篇介绍完发送get请求的接口,大家必然联想到发送post请求的接口也不会太难,被聪明的你又猜到了.答案是对的,虽然发送post请求的参考例子很简单,但是实际遇到的情况却是很复杂的,因为所有系统 ...

  6. java编程(2)——servlet和Ajax异步请求的接口编程(有调用数据库的数据)

    第一步: 1.为项目配置 Tomcat 为 server: 2.导入 mysql的jar包 到项目目录中: 第二步:编码 1.数据库连接类ConnectMysql.java代码: package co ...

  7. java编程(1)——servlet和Ajax异步请求的接口编程(没有调用数据库的数据)

    编程应用背景: 使用HttpServlet接口来编写一个动态登录的接口(需要在Tomcat容器发布) 登录的 LoginSample 类代码: package com.zhang.java; publ ...

  8. c#POST请求php接口

    POST请求php接口 /// <summary> /// 指定Post地址使用Get 方式获取全部字符串 /// </summary> /// <param name= ...

  9. Java HttpURLConnection模拟请求Rest接口解决中文乱码问题

    转自:http://blog.csdn.net/hwj3747/article/details/53635539 在Java使用HttpURLConnection请求rest接口的时候出现了POST请 ...

  10. ajax请求jesery接口无法获取参数的问题解决方案

    jesery是强大的RESTful api框架, 很多人在用它做web项目时会遇到这样一个问题: ajax请求jesery接口无法获取输入参数, 可明明接口已经指明了Consume是applicati ...

随机推荐

  1. 数据泵:oracle数据泵导入导出部分用户

    问题描述:需要将140服务器中的tbomnew实例下的部分用户导入到118服务器下的tbompx实例中,本次导入导出的两个数据库均为19C 部分用户名:CORE,MSTDATA,BOMMGMT,CFG ...

  2. Linux中如何通过yum或者apt下载安装MySQL

    一.   yum mysql5.7以下 mysql5.7以上 Centos8 可以,但是需要重新配置文件 可以,但是需要重新配置文件 可以,但是需要重新配置文件 Centos7 可以直接yum,但是是 ...

  3. NPM 实用命令与快捷方式

    在 JavaScript 中,无论是新手还是专家都可能在命令行中使用过 NPM.在本篇文章中,我将会整理超实用的 NPM 命令.快捷方式及技巧,帮助 JavaScript 开发人员提高生产力和效率. ...

  4. Prism Sample 21-PassingParameters

    这个例子是说明导航中传递参数,类似Asp.net中实现. 例子的模板,是例16中使用regionContext实现过的.在例16中, <Grid x:Name="LayoutRoot& ...

  5. .NET 6学习笔记(8)生成自签证书

    上一篇我们通过导出IIS Express的自签证书,供ASP.NET Core程序启用HTTPS.本篇我们讨论如何生成自签证书.自签证书的生成,有多种方式.比如OpenSSL或PowerShell都可 ...

  6. 2021-04-07:给定一个非负数组arr,长度为N,那么有N-1种方案可以把arr切成左右两部分,每一种方案都有,min{左部分累加和,右部分累加和},求这么多方案中,min{左部分累加和,右部分累加和}的最大值是多少? 整个过程要求时间复杂度O(N)。

    2021-04-07:给定一个非负数组arr,长度为N,那么有N-1种方案可以把arr切成左右两部分,每一种方案都有,min{左部分累加和,右部分累加和},求这么多方案中,min{左部分累加和,右部分 ...

  7. 2021-07-11:给定一个棵完全二叉树,返回这棵树的节点个数,要求时间复杂度小于O(树的节点数)。

    2021-07-11:给定一个棵完全二叉树,返回这棵树的节点个数,要求时间复杂度小于O(树的节点数). 福大大 答案2021-07-11: 右树最左节点层数==左树最左节点层数,左树是满二叉树,统计左 ...

  8. 2021-07-05:股票问题2。给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖

    2021-07-05:股票问题2.给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格.设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖 ...

  9. 百度飞桨(PaddlePaddle) - PaddleOCR 文字识别简单使用

    百度飞桨(PaddlePaddle)安装 OCR 文字检测(Differentiable Binarization --- DB) OCR的技术路线 PaddleHub 预训练模型的网络结构是 DB ...

  10. React-hooks 父组件通过ref获取子组件数据和方法

    我们知道,对于子组件或者节点,如果是class类,存在实例,可以通过 React.createRef() 挂载到节点或者组件上,然后通过 this 获取到该节点或组件. class RefTest e ...