首页 > 其他分享 >Apache HttpClient库来发送HTTP请求和接收响应

Apache HttpClient库来发送HTTP请求和接收响应

时间:2023-07-05 12:44:47浏览次数:34  
标签:http 请求 new apache org Apache HTTP 库来 HttpClient

 要使用Apache HttpClient库来发送HTTP请求和接收响应,你需要按照以下步骤进行操作:

  1. 导入HttpClient库: 首先,在你的Java项目中添加Apache HttpClient库的依赖。如果你使用Maven作为项目构建工具,可以在pom.xml文件中添加以下依赖项:
<dependencies>
  <dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.10</version>
  </dependency>
</dependencies>    
xml复制代码

<dependencies> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.13</version> </dependency> </dependencies>

  1. 创建HttpClient实例: 创建HttpClient对象以执行HTTP请求。
 
java复制代码

import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; CloseableHttpClient httpClient = HttpClientBuilder.create().build();

  1. 创建HTTP请求: 创建一个HttpUriRequest对象,以指定请求类型和URL。
 
java复制代码

import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpUriRequest; // GET请求示例 HttpUriRequest request = new HttpGet("http://example.com/api"); // POST请求示例 HttpUriRequest request = new HttpPost("http://example.com/api");

  1. 设置请求参数: 如果需要,你可以设置请求头、请求体或其他请求参数。
 
java复制代码

// 设置请求头信息 request.addHeader("Content-Type", "application/json"); // 设置请求体 String requestBody = "{ \"key\": \"value\" }"; ((HttpPost) request).setEntity(new StringEntity(requestBody));

  1. 发送请求并获取响应: 使用HttpClient对象发送请求,并获得服务器的响应。
 
java复制代码

import org.apache.http.client.ResponseHandler; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.impl.client.BasicResponseHandler; CloseableHttpResponse response = httpClient.execute(request); // 使用BasicResponseHandler将响应内容转换为字符串 ResponseHandler<String> responseHandler = new BasicResponseHandler(); String responseBody = responseHandler.handleResponse(response);

  1. 处理响应: 对获得的响应进行处理,包括获取状态码、响应头和

 

这是一个示例

 public static void main(String[] args) throws IOException {
        CloseableHttpClient httpClient = HttpClientBuilder.create().build();
        // GET请求示例
        HttpUriRequest requestGET = new HttpGet("http://localhost:8082/base/personbychineseName?unitchineseName=第三舰队");
        System.out.println("requestGET = " + requestGET);
        // POST请求示例
       // HttpUriRequest requestPOST = new HttpPost("http://localhost:8082/base/listb");
        HttpUriRequest requestPOST = new HttpPost("http://localhost:8082/unit/queryunitbybase");
        // 设置请求头信息
        requestPOST.addHeader("Content-Type", "application/json");


        // 设置请求体
        //String requestBody = "{ \"chineseName\": \"横须贺港\" }";
         String requestBody = "{\"chineseName\":\"横须贺港\"}";
        //String requestBody = "{\"chName\":\"高雄海軍基地\",\"type\":\"海基\",\"country\":\"台湾\",\"catagory\":\"蓝方\"}";
        ((HttpPost) requestPOST).setEntity(new StringEntity(requestBody,"UTF-8"));
        System.out.println("requestPOST = " + requestPOST);

        CloseableHttpResponse response = httpClient.execute(requestPOST);
        //CloseableHttpResponse response = httpClient.execute(requestGET);

      // 使用BasicResponseHandler将响应内容转换为字符串
        ResponseHandler<String> responseHandler = new BasicResponseHandler();
        String responseBody = responseHandler.handleResponse(response);
        System.out.println("responseBody = " + responseBody);
    }

 

标签:http,请求,new,apache,org,Apache,HTTP,库来,HttpClient
From: https://www.cnblogs.com/2324hh/p/17528229.html

相关文章

  • debian_ubuntu配置sock/socks5h/http/https代理
    编辑用户变量vi~/.bashrc添加以下代码#setproxyfunctionproxy_set(){exportMY_PROXY=socks5h://192.168.10.25:1080exportno_proxy="localhost,127.0.0.0/8,::1/128,.local,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12"exporthttp_proxy=${MY......
  • maven 网关应用:[NACOS ConnectException httpPost] currentServerAddr: http://localh
    网关应用运行忽然报错:[NACOSConnectExceptionhttpPost]currentServerAddr:http://localhost:8848,虽然调整了代码逻辑,但是nacos的配置没有变更过,之前也还能正常跑,网上查了一些,有说是配置优先级的问题,说是Nacos默认的配置优先级最高,覆盖了本地了,但是我遇到的情况是虽然一直......
  • org.apache.spark.shuffle.FetchFailedException: The relative remote executor(Id:
    问题描述org.apache.spark.shuffle.FetchFailedException:Therelativeremoteexecutor(Id:21),whichmaintainstheblockdatatofetchisdead.最近在做Spark的性能优化,测试使用不同CPU核数和内存对计算性能的影响,由于是在测试集群进行测试的,硬件配置比生产上面的要少和......
  • 禁止apache显示目录索引
    第一种方法:修改Apache配置文件[httpd.conf],搜索“OptionsIndexesFollowSymLinks”,修改为“Options-IndexesFollowSymLinks”即可。在OptionsIndexesFollowSymLinks在Indexes前面加上–符号。备注:在Indexes前,加+代表允许目录浏览;加–代表禁止目录浏览。这样的话就属于......
  • 普通用户启动 supervisor 报 HTTP 错误(strace)
    公司的开发对生产环境都有普通用户www的权限,采用堡垒机登录到生产环境的机器。默认supervisor使用root用户启动,开发没有权限直接修改配置和操作supervisor管理的进程,所以supervisor都采用www用户启动就解决问题了。但是今天操作生产环境的时候,报的错误令人懵逼,SRE......
  • 1.HTTP面试题
    1.HTTP基本概念1.1HTTP是什么 HTTP(HyperTextTransferProtocol)是超文本传输协议。它是一种双向传输协议。具体来说HTTP是一种在计算机世界里,专门在[两点]之间[传输]文字、图片、音频、视频等[超文本]数据的[约定和规范]。 1.2HTTP常见状态码有哪些 1.3HTTP常见字......
  • Comet-基于 HTTP 长连接的“服务器推”技术
    简介: 很多应用譬如监控、即时通信、即时报价系统都需要将后台发生的变化实时传送到客户端而无须客户端不停地刷新、发送请求。本文首先介绍、比较了常用的“服务器推”方案,着重介绍了Comet-使用HTTP长连接、无须浏览器安装插件的两种“服务器推”方案:基于AJAX的长轮询方式......
  • 收藏!200+ 精选 Apache Pulsar 资料合集
    ApachePulsar作为云原生时代消息流系统,采用存储计算分离架构,支持大集群、多租户、百万级Topic、跨地域数据复制、持久化存储、分层存储、高可扩展性等企业级和金融级功能。ApachePulsar提供了统一的消费模型,支持消息队列和流两种场景,既能为队列场景提供企业级读写服务质量和强......
  • java http大文件断点续传上传示例
    ​ 4GB以上超大文件上传和断点续传服务器的实现随着视频网站和大数据应用的普及,特别是高清视频和4K视频应用的到来,超大文件上传已经成为了日常的基础应用需求。但是在很多情况下,平台运营方并没有大文件上传和断点续传的开发经验,往往在网上找一些简单的PHP或者Java程序来实现基......
  • Servlet p6 HttpSession对象
    HttpSession对象HttpSession对象是javax.servlet.http.HttpSession的实例,该接口井不像HttpServletRequest或HttpServletResponse还存在一个父接口,该接口只是一个纯粹的接口。这因为session本身就属于HTTP协议的范畴。对于服务器而言,每个来连接到它的客户端都是一个Session,Serv......