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的InputMismatchException异常

    解决Java的InputMismatchException异常的完整攻略可以分为以下几个步骤: 确认异常的原因:InputMismatchException异常发生一般是因为输入数据的类型与所期待的类型不符。在程序中,如果使用了Scanner类来读取数据,那么输入的数据类型应该与Scanner类中的next方法所期待的类型一致。比如Scanner对象调用了n…

    Java 2023年5月27日
    00
  • SpringBoot之自定义Banner详解

    Spring Boot 之自定义 Banner 详解 在本文中,我们将深入了解 Spring Boot 中自定义 Banner 的使用。我们将介绍 Banner 的概念、配置和使用,并提供两个示例。 Banner 概念 Banner 是指在应用程序启动时显示的 ASCII 艺术字或自定义文本。Spring Boot 默认提供了一个 Banner,它包含了 S…

    Java 2023年5月15日
    00
  • JAVA内存模型和Happens-Before规则知识点讲解

    JAVA内存模型和Happens-Before规则是Java多线程编程中非常重要的知识点,理解这些知识对于编写高质量的并发程序至关重要。 JAVA内存模型 Java内存模型(Java Memory Model)是Java虚拟机规范中定义的一个重要概念,它决定了一个线程如何与另一个线程通信以及如何访问共享内存。 主内存和工作内存 JAVA内存模型将内存分为主内…

    Java 2023年5月26日
    00
  • idea运行main方法或Test避免编译整个应用的实现方法

    要想在 IDEA 中运行 main 方法或 Test 时避免编译整个应用程序,可以使用以下两种方法: 方法一:使用 JUnit Platform 使用 JUnit Platform 可以大幅度提高测试运行速度。JUnit Platform 是一个简单易用的测试框架,它运行在单独的进程中,可以在测试时避免编译整个应用程序。 以下是使用 JUnit Platfo…

    Java 2023年5月26日
    00
  • Tomcat中catalina.out 和 catalina.log的区别和用途详解

    Tomcat是一个基于Java的开源Web服务器,它是一种轻量级应用服务器,功能强大,广泛应用于Web应用程序的开发和部署。Tomcat中的catalina.out和catalina.log是服务器日志文件,这两个文件虽然非常重要,但作用有一些差别。 catalina.out catalina.out是Tomcat的标准输出文件,它记录了Tomcat启动、停…

    Java 2023年5月19日
    00
  • Java基础之常用的命令行指令

    Java基础之常用的命令行指令 在使用Java开发中,经常需要在命令行中执行一些操作,例如编译、运行Java程序等。下面是常用的命令行指令及其作用。 javac javac是Java编译器,可以将Java源代码编译成Java字节码文件(.class文件)。使用方法如下: javac HelloWorld.java 上述指令将会编译HelloWorld.jav…

    Java 2023年5月19日
    00
  • SpringBoot+Quartz+数据库存储的完美集合

    下面我会详细讲解如何使用SpringBoot+Quartz+数据库存储来实现定时任务的完美集合。 1. 简介 Quartz是一个轻量级的、开源的定时任务框架,支持复杂的定时任务调度和集群调度,并且可以与Spring无缝集成。 SpringBoot是一个快速开发框架,提供了快速创建项目、简化配置、自动配置等特性。 结合SpringBoot和Quartz,可以快…

    Java 2023年5月20日
    00
  • IDEA创建Java项目文件并运行教程解析

    IDEA创建Java项目文件并运行教程解析 1. 创建Java项目 打开IntelliJ IDEA,点击“Create New Project”。 在弹出的窗口中,选择“Java”并选择项目存放的路径。 选择JDK版本,点击“Next”。 在“Project Name”中填入项目名称,默认为“untitled”,点击“Next”。 配置项目的库文件,可不配置…

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