java发送http的get、post请求实现代码

下面是Java发送HTTP的GET、POST请求实现代码的完整攻略,包含两条示例说明。

准备工作

在使用Java发送HTTP请求前,需要导入相关包和类库。Java提供了两种发送HTTP请求的方式:URLConnection和HttpClient。我们可以根据实际的需求选择使用不同的方法。

1. 使用URLConnection发送HTTP请求

使用URLConnection发送HTTP请求,需要导入以下包:

import java.net.URL;
import java.net.URLConnection;
import java.io.BufferedReader;
import java.io.InputStreamReader;

其中,URL类用于定义URL地址,URLConnection用于打开URL连接并发送请求,BufferedReader用于读取返回的数据。

2. 使用HttpClient发送HTTP请求

使用HttpClient发送HTTP请求,需要导入Apache HttpClient libraries,可通过gradle或maven等依赖管理工具导入依赖。在Java9之后,HttpClient包被纳入到JDK核心库中,因此也可以直接使用。

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClientBuilder;

其中,HttpClient是Apache的开源项目,用于发送HTTP请求。HttpClientBuilder则用于创建HttpClient对象。HttpGet是Http请求方法类,用于发送get方法请求。同时,还有HttpPost类,用于发送post方法请求。

发送GET请求

使用URLConnection

首先,我们需要定义请求的URL和请求方式,然后打开URLConnection对象,并设置请求头和请求体,最后读取返回的数据。

String urlStr = "http://www.example.com/getData?key=value";
URL url = new URL(urlStr);
URLConnection conn = url.openConnection();
conn.setRequestProperty("User-Agent", "Mozilla/5.0");
conn.setRequestProperty("Accept-Charset", "utf-8");
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null) {
    System.out.println(line);
}

其中,User-AgentAccept-Charset是请求头,表示浏览器的信息和编码方式。getInputStream()方法用于获取数据流。reader.readLine()方法用于读取数据流中的每一行数据,直到为空时结束。

使用HttpClient

使用HttpClient发送GET请求,也需要先定义请求的URL和请求方式,然后创建HttpClient对象,并创建HttpGet对象,设置请求头,发送请求,最后读取返回的数据流。

String urlStr = "http://www.example.com/getData?key=value";
HttpClient httpClient = HttpClientBuilder.create().build();
HttpGet httpGet = new HttpGet(urlStr);
httpGet.addHeader("User-Agent", "Mozilla/5.0");
httpGet.addHeader("Accept-Charset", "utf-8");
HttpResponse response = httpClient.execute(httpGet);
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line = null;
while ((line = reader.readLine()) != null) {
    System.out.println(line);
}

发送POST请求

使用URLConnection

使用URLConnection发送POST请求,需要先定义请求的URL和请求方式,然后打开URLConnection对象,并设置请求头和请求体。

String urlStr = "http://www.example.com/submitData";
URL url = new URL(urlStr);
String data = "key1=value1&key2=value2";
URLConnection conn = url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("User-Agent", "Mozilla/5.0");
conn.setRequestProperty("Accept-Charset", "utf-8");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(data.getBytes().length));
conn.setDoOutput(true);
conn.getOutputStream().write(data.getBytes());

其中,setRequestMethod()用于设置请求方式为POST,setDoOutput(true)用于设置URLConnection对象的输出属性为true,表示可对请求进行输出。getOutputStream()方法用于获取URLConnection的输出流,以便向连接中写入请求体。

使用HttpClient

使用HttpClient发送POST请求也需要先定义请求的URL和请求方式,然后创建HttpClient对象和HttpPost对象,设置请求头和请求体,最后发送请求并读取返回的数据流。

String urlStr = "http://www.example.com/submitData";
HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost httpPost = new HttpPost(urlStr);
String data = "key1=value1&key2=value2";
StringEntity entity = new StringEntity(data, Charset.forName("UTF-8"));
entity.setContentType("application/x-www-form-urlencoded");
httpPost.setEntity(entity);
httpPost.addHeader("User-Agent", "Mozilla/5.0");
httpPost.addHeader("Accept-Charset", "utf-8");
HttpResponse response = httpClient.execute(httpPost);
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line = null;
while ((line = reader.readLine()) != null) {
    System.out.println(line);
}

其中,setEntity()方法用于设置HttpEntity对象,表示请求体。addHeader()方法用于设置请求头。ContentType用于设置编码方式。

阅读剩余 59%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java发送http的get、post请求实现代码 - Python技术站

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

相关文章

  • Java日期时间使用方法汇总

    Java日期时间使用方法汇总 1. 日期时间的格式化 在Java中,可以使用SimpleDateFormat类来格式化日期时间。SimpleDateFormat的常见格式符如下: 符号 含义 yyyy 年份 MM 月份 dd 日期 HH 小时 mm 分钟 ss 秒 下面是一个示例代码: import java.text.SimpleDateFormat; i…

    Java 2023年5月20日
    00
  • 详细学习Java Cookie技术(用户登录、浏览、访问权限)

    详细学习Java Cookie技术(用户登录、浏览、访问权限) 什么是Cookie Cookie是存储在用户本地计算机上的文本文件,它可以跨浏览器窗口和会话保留状态信息。在Java中,通过Cookie技术,我们可以实现用户登录、浏览历史管理等功能。Cookie是由服务器端发送到客户端,客户端再将它存储在本地,下次请求时再带上这个Cookie,服务器端就可以识…

    Java 2023年5月26日
    00
  • 数据库其它

    关于“数据库其它”的攻略,我可以向你分享以下内容: 什么是“数据库其他” 在数据库领域中,通常我们在日常工作中会遇到常见的数据库如MySQL、Oracle、SQL Server等,但是还存在一些相对冷门但是非常有用的数据库,这些数据库就是“数据库其他”。这些数据库通常也有独特的使用场景和应用需求,有一定的价值。下面是一些常见的“数据库其他”: MongoDB…

    Java 2023年5月19日
    00
  • jsp 实现的简易mvc模式示例

    以下是“JSP实现的简易MVC模式示例”的完整攻略: 1. MVC模式简介 MVC(Model-View-Controller)是一种软件设计模式,将一个应用程序分为三种组件:数据模型(Model)、用户界面(View)和控制逻辑(Controller)。MVC模式的主要目的是实现应用程序的逻辑分离,以便更容易地维护和扩展应用程序。 2. 实现MVC模式的技…

    Java 2023年6月15日
    00
  • java+mysql实现登录和注册功能

    准备工作 在实现登录和注册功能之前,需要确保Java和MySQL都已经安装好。同时,还需要使用Java的一些开发环境,比如Eclipse或者IntelliJ IDEA,以及MySQL的一些管理工具,如phpMyAdmin或者Navicat。 创建数据库和数据表 首先,需要在MySQL中创建一个名为“mydb”的数据库。可以通过以下命令来实现: CREATE …

    Java 2023年5月19日
    00
  • 使用Mybatis如何实现多个控制条件查询

    使用 Mybatis 实现多个控制条件查询需要做以下几步: 定义 Mapper 接口方法并在 SQL 语句中使用 Mybatis 动态 SQL。 Mybatis 提供了 if 、where、choose、when、otherwise等标签来实现动态 SQL,通过这些标签可以方便地拼接sql语句来实现多个控制条件的查询。 例如,有一个需求是根据用户输入的查询条…

    Java 2023年5月20日
    00
  • IDEA-Maven项目的jdk版本设置方法

    下面就详细讲解“IDEA-Maven项目的jdk版本设置方法”的完整攻略。 第一步:确认jdk版本 首先要确认本地已经安装了需要使用的jdk版本,打开终端输入以下命令: java -version 如果显示的版本号和你需要使用的版本号一致,则可以跳过第二步。如果版本号不一致,需要安装或者设置jdk环境变量。这里不再详述。 第二步:设置项目jdk版本 2.1 …

    Java 2023年5月20日
    00
  • Java实现通讯录管理系统项目

    下面我会给您详细讲解 Java 实现通讯录管理系统项目的完整攻略,步骤如下: 1. 确定所需技术栈 在开始之前,我们需要明确该项目需要用到哪些技术栈,Java 实现通讯录管理系统项目需要用到的技术栈包括: Java 语言基础 面向对象编程思想 Java 集合框架 文件 I/O 2. 设计通讯录管理系统的数据结构 在这一步骤中,我们需要通过数据结构来描述通讯录…

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