java使用httpclient发送post请求示例

下面是关于 Java 使用 HttpClient 发送 POST 请求的完整攻略。

组件

在 Java 中发送 HTTP 请求,我们可以使用 Apache 的 HttpClient 组件,它提供了一系列的 API 帮助我们创建和发送请求。

在使用 HttpClient 组件之前,需要下载 HttpClient 组件的 jar 包,并将其添加到项目依赖中。

POST 请求

设置请求参数

发送 POST 请求需要设置请求参数,我们可以通过创建 Map 对象或者使用其他方式来设置请求参数,下面是以创建 Map 对象来设置请求参数的示例代码:

Map<String, String> params = new HashMap<>();
params.put("name", "张三");
params.put("age", "18");
params.put("sex", "男");

创建HttpPost对象

创建 HttpPost 对象,用于设置请求地址和请求参数:

HttpPost post = new HttpPost("http://localhost:8080/api/user");
post.setEntity(new UrlEncodedFormEntity(params, Charset.forName("UTF-8")));

发送请求并获取响应

使用 HttpClient 组件发送 HTTP 请求,然后获取响应结果:

CloseableHttpClient client = HttpClients.createDefault();
CloseableHttpResponse response = client.execute(post);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == HttpStatus.SC_OK) {
    HttpEntity entity = response.getEntity();
    String result = EntityUtils.toString(entity, Charset.forName("UTF-8"));
    System.out.println(result);
}

示例

下面我们来看一下两个发送 POST 请求的示例。

示例1

发送 JSON 格式的 POST 请求:

CloseableHttpClient client = HttpClients.createDefault();
HttpPost post = new HttpPost("http://localhost:8080/api/user");

Map<String, Object> jsonMap = new HashMap<>();
jsonMap.put("name", "张三");
jsonMap.put("age", "18");
jsonMap.put("sex", "男");

String jsonString = JSON.toJSONString(jsonMap);
StringEntity entity = new StringEntity(jsonString, ContentType.APPLICATION_JSON);
post.setEntity(entity);

CloseableHttpResponse response = client.execute(post);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == HttpStatus.SC_OK) {
    HttpEntity httpEntity = response.getEntity();
    String result = EntityUtils.toString(httpEntity, Charset.forName("UTF-8"));
    System.out.println(result);
}

示例2

发送 Form 格式的 POST 请求:

CloseableHttpClient client = HttpClients.createDefault();
HttpPost post = new HttpPost("http://localhost:8080/api/user");

Map<String, String> params = new HashMap<>();
params.put("name", "张三");
params.put("age", "18");
params.put("sex", "男");

post.setEntity(new UrlEncodedFormEntity(params, Charset.forName("UTF-8")));
CloseableHttpResponse response = client.execute(post);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == HttpStatus.SC_OK) {
    HttpEntity httpEntity = response.getEntity();
    String result = EntityUtils.toString(httpEntity, Charset.forName("UTF-8"));
    System.out.println(result);
}

以上就是 Java 使用 HttpClient 发送 POST 请求的完整攻略和两个示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java使用httpclient发送post请求示例 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • 深入浅出JAVA MyBatis-快速入门

    接下来我将详细讲解“深入浅出JAVA MyBatis-快速入门”的完整攻略。 一、MyBatis简介 MyBatis是一个开源的持久层框架,它对JDBC进行了轻量级封装,使得开发者只需要关注SQL本身,而不需要过多考虑JDBC相关的代码。MyBatis使用XML或注解来配置和映射原始数据类型、Map和POJO到数据库记录。 二、MyBatis入门 1. 安装…

    Java 2023年5月19日
    00
  • java中tomcat的80端口被占用问题解决

    当我们在运行Tomcat服务器时,可能会遇到端口被占用的问题,这就意味着我们无法使用Tomcat服务器。幸运的是,这个问题可以有多种方法进行解决。下面是一些常见的解决办法: 技巧一:检查端口是否被占用 首先,我们需要确认80端口是否真的被占用。我们可以利用一些命令来查看占用端口的情况。例如,在Windows中,可以使用以下命令检查: netstat -ano…

    Java 2023年6月2日
    00
  • Java实战之用Swing实现通讯录管理系统

    Java实战之用Swing实现通讯录管理系统 介绍 本文将讲解如何用Java Swing实现一个简单通讯录管理系统。Swing是Java提供的GUI工具包,它允许我们方便地创建窗口和组件,并为它们添加事件。本文将提供完整的攻略,包含创建GUI界面、使用SQLite作为数据库、添加事件处理程序、实现数据的CRUD操作等内容。 前置知识 在学习本文之前,你需要对…

    Java 2023年5月24日
    00
  • java servlet获得客户端相关信息的简单代码

    好的。为了获得客户端相关信息,需要使用HTTP请求头中的一些信息。下面是获取客户端相关信息的简单代码及详细的攻略。 1.获取客户端IP地址 String ipAddress = request.getHeader("X-Forwarded-For"); if (ipAddress == null || ipAddress.length()…

    Java 2023年6月15日
    00
  • SpringBoot Admin 使用指南(推荐)

    Spring Boot Admin 使用指南 Spring Boot Admin 是一个用于管理和监控 Spring Boot 应用程序的开源项目。它提供了一个简单易用的 Web 界面,可以帮助我们监控应用程序的运行状态、性能标和日志信息等。在本文中,我们将详细讲解 Spring Boot Admin 的使用方法,并提供两个示例。 添加依赖 在 Spring…

    Java 2023年5月15日
    00
  • Java内存模型可见性问题相关解析

    Java内存模型可见性问题相关解析 Java是一门高级程序设计语言,应用广泛,但是在并发编程时,由于内存可见性问题可能会导致程序出现一些奇怪的行为。本文将详细讲解Java内存模型可见性问题及相关解析。 什么是Java内存模型可见性问题? Java内存模型中存在着共享变量被多个线程同时访问的情况。然而,由于JVM使用CPU缓存等优化策略,可能会将某些共享变量的…

    Java 2023年5月26日
    00
  • Java 实现 web服务器的简单实例

    下面我将为您详细讲解“Java 实现 web服务器的简单实例”的完整攻略。 实现方法 要实现Java实现web服务器这个功能,我们需要使用Java中的Socket通信来实现。具体实现步骤如下: 创建ServerSocket类实例,并指定要监听的端口号。 调用ServerSocket实例的accept()方法,等待客户端的连接。 客户端连接成功后,从与该客户端…

    Java 2023年5月19日
    00
  • SpringBoot项目如何访问jsp页面的示例代码

    下面是关于Spring Boot项目访问jsp页面的攻略及两条示例说明。 一. 配置pom.xml文件 在Spring Boot项目的pom.xml文件中,添加如下依赖: <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>to…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部