在 Java 开发中,经常需要与 Web 服务器进行通信,比如获取网页内容、调用 RESTful API 等。Java 标准库提供了 HttpURLConnection 类,它是 java.net 包的一部分,用于发送 HTTP 请求和接收响应。本教程将带你从零开始学习 Java HttpURLConnection 的基本用法,即使你是编程小白,也能轻松上手!
HttpURLConnection 是 Java 内置的用于处理 HTTP 协议的类。它继承自 URLConnection,专门用于发起 HTTP/HTTPS 请求。相比第三方库(如 Apache HttpClient 或 OkHttp),它的优势在于无需额外依赖,适合轻量级项目或学习用途。
确保你已安装 JDK 并配置好开发环境。本教程使用 Java 8 及以上版本。
GET 请求是最常见的 HTTP 请求类型,用于从服务器获取数据。下面是一个完整的示例:
import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;public class HttpGetExample { public static void main(String[] args) { try { // 1. 创建 URL 对象 URL url = new URL("https://jsonplaceholder.typicode.com/posts/1"); // 2. 打开连接 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); // 3. 设置请求方法(默认就是 GET,可省略) connection.setRequestMethod("GET"); // 4. 设置超时时间(可选) connection.setConnectTimeout(5000); connection.setReadTimeout(5000); // 5. 获取响应码 int responseCode = connection.getResponseCode(); System.out.println("Response Code: " + responseCode); // 6. 读取响应内容 BufferedReader in = new BufferedReader( new InputStreamReader(connection.getInputStream()) ); String inputLine; StringBuilder content = new StringBuilder(); while ((inputLine = in.readLine()) != null) { content.append(inputLine); } in.close(); // 7. 打印结果 System.out.println("Response Body: " + content.toString()); // 8. 断开连接 connection.disconnect(); } catch (Exception e) { e.printStackTrace(); } }} POST 请求通常用于向服务器提交数据,比如表单或 JSON 数据。以下是发送 JSON 数据的 POST 示例:
import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;import java.nio.charset.StandardCharsets;public class HttpPostExample { public static void main(String[] args) { try { URL url = new URL("https://jsonplaceholder.typicode.com/posts"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); // 设置请求方法为 POST connection.setRequestMethod("POST"); connection.setDoOutput(true); // 允许输出 // 设置请求头 connection.setRequestProperty("Content-Type", "application/json; utf-8"); // 准备要发送的 JSON 数据 String jsonInputString = "{\"title\": \"Hello\", \"body\": \"This is a test post\", \"userId\": 1}"; // 发送请求体 try (OutputStream os = connection.getOutputStream()) { byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8); os.write(input, 0, input.length); } // 读取响应 int responseCode = connection.getResponseCode(); System.out.println("Response Code: " + responseCode); // 注意:POST 成功后通常返回 201 Created BufferedReader in = new BufferedReader( new InputStreamReader(connection.getInputStream()) ); String inputLine; StringBuilder content = new StringBuilder(); while ((inputLine = in.readLine()) != null) { content.append(inputLine); } in.close(); System.out.println("Response: " + content.toString()); connection.disconnect(); } catch (Exception e) { e.printStackTrace(); } }} disconnect() 释放资源。HttpURLConnection 自动支持 HTTPS,无需额外配置。HttpURLConnection 实例不是线程安全的,不要在多个线程中共享同一个实例。通过本教程,你已经掌握了 Java HttpURLConnection 使用方法,包括如何发送 GET 和 POST 请求。虽然 HttpURLConnection 功能强大且无需依赖,但在实际项目中,如果需要更复杂的特性(如连接池、自动重试等),建议使用 OkHttp 或 Spring WebClient 等现代库。
希望这篇 Java HTTP请求教程 能帮助你顺利入门 Java网络编程!动手试试吧,实践是最好的老师。
本文由主机测评网于2025-12-06发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025123789.html