HttpClient是Apache中的一个开源的项目。它实现了HTTP标准中Client端的所有功能,使用它能够很容易地进行HTTP信息的传输。HttpClient的主要功能:

  • 实现了所有 HTTP 的方法(GET、POST、PUT、HEAD、DELETE、HEAD、OPTIONS 等)
  • 支持 HTTPS 协议
  • 支持代理服务器(Nginx)
  • 支持自动(跳转)转向 等等

HttpCLient最关键的方法是执行HTTP请求的方法execute。只要把HTTP请求传入,就可以得到HTTP响应。

使用HttpClient请求一个Http请求的步骤为:

(1)创建一个HttpClient对象

(2)创建一个Request对象

(3)使用HttpClient来执行Request请求,得到对方的response

(4)处理response

(5)关闭HttpClient

本人使用的是fegin包下面的httpclient ,当然也可以使用 httpcomponents下的依赖。

接下来我们在idea中进行尝试一下。首先引入httpClient的maven依赖。

      <dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
</dependency> <dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-jackson</artifactId>
</dependency>

httpcomponents pom 目前最高的可以点击下方的链接去查看


<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.10</version>
</dependency> <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.6</version>
</dependency>

代码如下

 public static void main(String[] args) throws IOException {
CloseableHttpClient httpClient = HttpClients.createDefault();
//POST 请求
HttpPost httpPost = new HttpPost();
//GET 请求
HttpGet httpGet = new HttpGet("");
//设置接口请求头信息
httpPost.addHeader("Authorization","xxx");
httpPost.addHeader("Content-Type", "application/json;charset=utf8"); CloseableHttpResponse response = httpClient.execute(httpGet);
if (response.getStatusLine().getStatusCode() == 200) {
HttpEntity entity = response.getEntity();
String result = EntityUtils.toString(entity, "utf-8");
//TODO 在这里处理请求后的数据逻辑
System.out.println(result);
}
//5.关闭资源
response.close();
httpClient.close();
}
}

具体的httpGet类中的代码如下


package org.apache.http.client.methods; import java.net.URI; public class HttpGet extends HttpRequestBase {
public static final String METHOD_NAME = "GET"; public HttpGet() {
} public HttpGet(URI uri) {
this.setURI(uri);
} public HttpGet(String uri) {
this.setURI(URI.create(uri));
} public String getMethod() {
return "GET";
}
}

HttpClient请求接口实例demo的更多相关文章

  1. httpclient请求接口,上传文件附加参数(.net core)

    /// <summary> /// 上传文件 - 武汉站点 /// </summary> [HttpPost] public IActionResult UploadWH(Re ...

  2. Python 简单批量请求接口实例

    #coding:utf-8 ''' Created on 2017年11月10日 @author: li.liu ''' import urllib import time str1=''' http ...

  3. iOS开发-网络-合理封装请求接口

    概述 如今大多App都会与网络打交道,作为开发者,合理的对网络后台请求接口进行封装十分重要.本文要介绍的就是一种常见的采用回调函数(方法)的网络接口封装,也算的是一种构架吧. 这个构架主要的idea是 ...

  4. java实现利用httpclient访问接口

    HTTP协议时Internet上使用的很多也很重要的一个协议,越来越多的java应用程序需要通过HTTP协议来访问网络资源. HTTPClient提供的主要功能: 1.实现了所有HTTP的方法(GET ...

  5. Android微信分享功能实例+demo

    Android微信分享功能实例 1 微信开放平台注册 2 获得appId,添加到程序中,并运行程序 3 使用应用签名apk生成签名,添加到微信开放平台应用签名,完成注册 4 测试分享功能. 有问题请留 ...

  6. HttpClient请求服务器代码优化版

    HttpClient请求服务器代码优化版 首先,我在前面的两篇博文中介绍了在 Android中,除了使用java.net包下HttpUrlConnection的API访问HTTP服务之外,我们还可以换 ...

  7. Asp.Net Core基于JWT认证的数据接口网关Demo

    近日,应一位朋友的邀请写了个Asp.Net Core基于JWT认证的数据接口网关Demo.朋友自己开了个公司,接到的一个升级项目,客户要求用Aps.Net Core做数据网关服务且基于JWT认证实现对 ...

  8. mybatis 学习笔记 -详解mybatis 及实例demo

    快速入门1 要点: 首先明白mybatis 是什么 这是一个持久层的框架.之前叫做ibatis.所以,在它的代码中出现ibatis这个词的时候,不要感到惊讶.不是写错了,它确实就是这个样子的. 首先, ...

  9. 支付宝即时到账接口开发 - DEMO讲解

    支付宝即时到帐接口 环境要求 PHP5.0以上,且需要开启curl.openssl. 文档地址: https://doc.open.alipay.com/doc2/detail?treeId=62&a ...

  10. HttpClient远程接口调用-实名认证

    1.HttpClient远程接口调用 1)用户注册 注册按钮button提交表单时,要return false form表单 <!-- action="http://localhost ...

随机推荐

  1. 网站提示:You Don’t Have Permission To Access

    测试 apache集成环境访问网站,突然出现错误提示"You don't have permission to access /index.php on this server." ...

  2. 导出SQL SERVER 数据字典语句

    --use YourDatabase --指定要生成数据字典的数据库go SELECT 表名=case when a.colorder=1 then d.name else '' end, 表说明=c ...

  3. centos7清理docker垃圾文件

    相信很多朋友都有这个docker容器导致主机磁盘空间满了的问题,应用容器在宿主机上长期运行,应用实例启停容器,会产生大量的停止的容器,无容器使用的数据卷.网络配置,无容器依赖的镜像,这些垃圾日积月累, ...

  4. 把excel表中的数据导入到mysql数据库中

    1.把excel表结构转化为csv,在把csv后缀改为txt文件,把txt文件另存为,把字符集编码转化成utf-8,在把txt文件转化为csv文件 注意:需要导入的数据表格头的名字要和数据库的字段名一 ...

  5. SQL CASE 标注

    根据 状态值 显示中文备注 case when a.zht='0' then '录入' when  a.zht='1' then '待审核' when a.zht='2' then '已审核' end ...

  6. C++快速求解最大公因数 | gcd库函数

    1.介绍 gcd全称 :greatest common divisor 使用 __gcd( int x1, int x2 ) 函数可以高效.迅速得到x1, x2两个数的最大公因数.省去手写底层代码,专 ...

  7. WPF textbox实现单击全选

  8. JAVA课程设计(附源码)

    Java课程设计选题 Java课程设计说明 本次课程设计的目的是通过课程设计的各个项目的综合训练,培养学生实际分析问题.编程和动手能力,提高学生的综合素质.本课程设计尝试使用一些较生动的设计项目,激发 ...

  9. android本地文件处理的一些经验

    选择文件后,现在一般返回 Uri contentResolver.getType(selUrl)结果如下 .txt text/plain .jpeg image/jpeg .mp4 video/mp4 ...

  10. spring-cloud-alibaba-dubbo踩坑记

    在https://start.aliyun.com/bootstrap.html下载了示例程序,用的版本如下: spring-boot:2.3.7.RELEASE spring-cloud-aliba ...