首页 > 其他分享 >Apache HttpComponents Client详解

Apache HttpComponents Client详解

时间:2023-08-09 12:56:46浏览次数:40  
标签:请求 响应 HttpComponents Client httpPost Apache new HttpClient httpClient

 Apache HttpComponents Client(也称为HttpClient)是一个开源的Java库,用于发送HTTP请求并处理HTTP响应。它提供了一组易于使用的API,用于构建和执行HTTP请求,并处理请求和响应的各个方面,如URL处理、请求头、请求体、响应状态、响应内容等。

下面是一些关于使用Apache HttpComponents Client的常见操作:

  1. 发送GET请求:

// 创建HttpClient对象
CloseableHttpClient httpClient = HttpClients.createDefault();

// 创建HttpGet请求
HttpGet httpGet = new HttpGet("http://example.com");

// 执行请求
CloseableHttpResponse response = httpClient.execute(httpGet);

// 处理响应
try {
    // 获取响应状态码
    int statusCode = response.getStatusLine().getStatusCode();

    // 获取响应内容
    String responseBody = EntityUtils.toString(response.getEntity());

    // 处理响应数据...
} finally {
    // 关闭响应
    response.close();
}

// 关闭HttpClient
httpClient.close();

 

发送POST请求:

// 创建HttpClient对象
CloseableHttpClient httpClient = HttpClients.createDefault();

// 创建HttpPost请求
HttpPost httpPost = new HttpPost("http://example.com");

// 设置请求体参数
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("param1", "value1"));
params.add(new BasicNameValuePair("param2", "value2"));
httpPost.setEntity(new UrlEncodedFormEntity(params));

// 执行请求
CloseableHttpResponse response = httpClient.execute(httpPost);

// 处理响应...

// 关闭HttpClient
httpClient.close();

 

 

设置请求头:

httpGet.addHeader("Content-Type", "application/json");
httpPost.setHeader("Authorization", "Bearer token123");

 

 

处理文件上传:

// 创建HttpClient对象
CloseableHttpClient httpClient = HttpClients.createDefault();

// 创建HttpPost请求
HttpPost httpPost = new HttpPost("http://example.com/upload");

// 创建文件
File file = new File("path/to/file");

// 创建文件上传实体
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addBinaryBody("file", file, ContentType.DEFAULT_BINARY, file.getName());
HttpEntity multipartEntity = builder.build();

// 设置请求实体
httpPost.setEntity(multipartEntity);

// 执行请求...

// 关闭HttpClient
httpClient.close();

 

处理重定向:

// 创建HttpClient对象
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
httpClientBuilder.setRedirectStrategy(new LaxRedirectStrategy());
CloseableHttpClient httpClient = httpClientBuilder.build();

// 执行请求...

 

这些只是Apache HttpComponents Client库的一些基本用法示例,它还提供了许多其他功能和配置选项,如连接池管理、代理设置、超时设置、SSL/TLS配置等,以满足更复杂的HTTP请求需求。

标签:请求,响应,HttpComponents,Client,httpPost,Apache,new,HttpClient,httpClient
From: https://www.cnblogs.com/2324hh/p/17616566.html

相关文章

  • Apache Sqoop安装
    1.切换到/export/server2.上传并解压tarzxvfsqoop-1.4.7.bin__hadoop-2.6.03.设置软连接ln-ssqoop-1.4.7.bin__hadoop-2.6.0sqoop4.切换到/sqoop/conf将sqoop-env-template.sh改名为sqoop-env.shmvsqoop-env-template.shsqoop-env.sh5.编辑配置文件(sqoop-env.sh......
  • prometheus的sdk client_golang 使用 定时器
    之前线上监控的agent都是直接  time.Sleep(time.Duration(collectInterval)*time.Second),多少有些许的low,每次开始采集数据的时间都是从程序开始执行就开始采集,很显然这种偷懒的方式是不合理的。1、简单复制粘贴一下funcAbNormalLoglistener(collectIntervalint){......
  • OPCClient可视化工具使用教程
    OPCClient可视化工具使用教程1、下载OPCClient,直接打开,进入如下界面: 2、点击OPC=>Connect,ServerNode输入服务器ip,点击RefreshList,下面文本框会出现服务名,选择所需要的服务名称,点击OK或双击服务名3、点击OPC=>AddItem,出现下图4、选择左下框,右框出现所有节点,双击节点即......
  • 新一代开源流数据湖平台Apache Paimon入门实操-下
    @目录实战写表插入和覆盖数据更新数据删除数据MergeInto查询表批量查询时间旅行批量增量查询流式查询时间旅行ConsumerID查询优化系统表表指定系统表分区表全局系统表维表CDC集成MySQLKafka支持schema变更实战写表插入和覆盖数据可以使用INSERT语句向表中插入新行或覆盖表中......
  • Apache Spark
    .NETforApacheSpark™|大数据分析(microsoft.com) dotnet/spark:.NETforApache®Spark™makesApacheSpark™easilyaccessibleto.NETdevelopers.(github.com) 使用.NET5体验大数据和机器学习(qq.com)......
  • Apache HTTPD换行解析漏洞(CVE-2017-15715)
    ApacheHTTPD换行解析漏洞(CVE-2017-15715)【项目中遇到】ApacheHTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页,其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A将按照PHP后缀进行解析,导致绕过一些服务器安全策略。1.环境搭建cdhttpd/CVE-2017-15715/doc......
  • 从 Pulsar Client 的原理到它的监控面板
    背景前段时间业务团队偶尔会碰到一些Pulsar使用的问题,比如消息阻塞不消费了、生产者消息发送缓慢等各种问题。虽然我们有个监控页面可以根据topic维度查看他的发送状态,比如速率、流量、消费状态等信息。但也有几个问题:无法在应用维度查看他所依赖的所有topic的各种......
  • apache开启密码认证
    环境:centos6.91、配置文件增加vim/etc/httpd/conf/httpd.conf,页面认证选项2、增加认证用户和密码htpasswd-c/etc/httpd/conf/httpusertom3、效果4、增加安全性......
  • [maven]java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultMod
    Maven异常环境idea版本:2020.1.3maven版本:3.8.5问题描述在idea中加入maven配置时,idea一直报出java.lang.NoSuchMethodError:org.apache.maven.model.validation.DefaultModelValidator异常异常信息1)Errorinjectingconstructor,java.lang.NoSuchMethodError:org.......
  • Apache Superset 1.2.0教程 (三)—— 图表功能详解
    通过之前章节的学习,我们已经成功地安装了superset,并且连接mysql数据库,可视化了王者英雄的数据。使用的是最简单Table类型的图表,但是superset还支持非常多的图表类型。本文我们将对各种图表类型进行逐一的演示,文章较长,建议收藏后阅读。图表分类Superset提供了大量的图表来帮助我们进......