java使用httpclient发送post请求示例

yizhihongxing

下面是关于 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 object对象在heap中的结构

    浅谈Java Object对象在Heap中的结构 介绍 Java内存分为栈内存和堆内存,栈内存用于存储局部变量和方法调用的信息,而堆内存用于存储动态分配的对象和数组。在堆内存中,Java对象存储在对象头和对象实例数据两部分中。 Java对象头结构 Java对象在内存中的结构包括对象头和对象实例数据两部分,对象头的大小在不同的JVM实现中有所不同,取决于虚拟机…

    Java 2023年5月26日
    00
  • Java中计算时间差的方法

    当我们使用Java进行开发时,有时需要计算两个时间之间的时间差。在Java中计算时间差可以使用以下常用方式。 1.使用Date类 import java.text.SimpleDateFormat; import java.util.Date; public class TimeDifference { public static void main(Str…

    Java 2023年5月20日
    00
  • 详细聊聊Spring MVC重定向与转发

    详细聊聊Spring MVC重定向与转发 在Spring MVC中,重定向和转发是两种常见的请求转发方式。本文将详细介绍Spring MVC中重定向和转发的概念、区别、使用方法以及示例。 重定向 重定向是指将请求重定向到另一个URL。在Spring MVC中,我们可以使用RedirectView或RedirectAttributes类来实现重定向。下面是实现…

    Java 2023年5月17日
    00
  • Java使用lambda表达式简化代码的示例详解

    下面是“Java使用lambda表达式简化代码的示例详解”的完整攻略。 什么是Lambda表达式 Lambda表达式是Java8中引入的一种新特性,它能够以一种简洁的方式来代替Java中的匿名内部类。Lambda表达式用于表示函数接口的一个方法,它不需要声明方法名、返回类型和参数类型,Lambda表达式完全匹配函数接口。 如何使用Lambda表达式 使用La…

    Java 2023年5月23日
    00
  • Java Excel数据导入数据库的方法

    下面是详细的“Java Excel数据导入数据库的方法”的攻略: 准备工作 在进行Java Excel数据导入数据库的操作之前,需要先安装以下软件: Java SE Development Kit (JDK):Java开发套件,提供Java编程所需的基本工具。 Apache POI:Java操作Office文件的API,提供对Excel、Word和Power…

    Java 2023年5月20日
    00
  • JAVA学习之一步步搭建spring框架

    JAVA学习之一步步搭建Spring框架 Spring是一个开源的Java框架,它提供了一种轻量级的解决方案,用于构建企业级应用程序。本文将详细讲解如何一步步搭建Spring框架。 1. 安装Java和Maven 在开始搭建Spring框架之前,我们需要先安装Java和Maven。Java是一种广泛使用的编程语言,而Maven是一个Java项目管理工具,它可…

    Java 2023年5月18日
    00
  • 浅谈Java多线程的优点及代码示例

    首先我们来讲一下Java多线程的优点。Java是一种多线程支持语言,它可以让程序员通过并发编程来充分利用硬件资源,提高程序的运行效率和性能。下面是Java多线程的优点: 提高程序的性能和响应速度。在多核CPU的计算机上使用多线程可以使得程序在执行计算密集型任务时,可以同时利用多个CPU核心,提高程序并发处理的能力,提高程序的执行效率。同时,在IO密集型任务中…

    Java 2023年5月26日
    00
  • Java IO创建目录和文件实例代码

    下面是Java IO创建目录和文件实例代码的完整攻略,包含以下内容: 1.创建文件夹:mkdir()和mkdirs() 2.创建文件:createNewFile() 3.两个练习示例 创建文件夹:mkdir()和mkdirs() 在Java中,我们可以使用mkdir()和mkdirs()方法来创建文件夹。 mkdir()方法创建一个文件夹,它仅在在指定路径的…

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