当前位置:首页 > Java

java如何联网

2026-03-20 06:39:53Java

使用 HttpURLConnection 联网

Java 标准库中的 java.net.HttpURLConnection 是最基础的联网方式。通过创建 URL 对象并打开连接,可以发送 HTTP 请求并读取响应。

URL url = new URL("https://example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");

int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
    BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
    String inputLine;
    StringBuilder response = new StringBuilder();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
} else {
    System.out.println("请求失败,响应码: " + responseCode);
}

使用 HttpClient 联网

Java 11 引入了新的 java.net.http.HttpClient API,提供了更现代和灵活的联网方式。支持异步请求和 HTTP/2。

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://example.com"))
        .build();

client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
        .thenApply(HttpResponse::body)
        .thenAccept(System.out::println)
        .join();

使用第三方库 OkHttp

OkHttp 是 Square 公司开发的流行 HTTP 客户端库,提供了简洁的 API 和强大的功能。

OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
        .url("https://example.com")
        .build();

try (Response response = client.newCall(request).execute()) {
    System.out.println(response.body().string());
}

处理网络异常

联网操作可能会抛出多种异常,需要妥善处理。常见的异常包括 MalformedURLExceptionIOExceptionSocketTimeoutException

try {
    URL url = new URL("https://example.com");
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    // 其他操作
} catch (MalformedURLException e) {
    System.err.println("URL格式错误: " + e.getMessage());
} catch (IOException e) {
    System.err.println("网络错误: " + e.getMessage());
}

设置请求头和参数

在发送请求时,可能需要设置请求头或添加查询参数。HttpURLConnection 和 HttpClient 都支持这些操作。

// 使用 HttpURLConnection 设置请求头
connection.setRequestProperty("User-Agent", "Mozilla/5.0");
connection.setRequestProperty("Accept", "application/json");

// 使用 HttpClient 添加查询参数
String query = "param1=value1&param2=value2";
URI uri = URI.create("https://example.com?" + query);
HttpRequest request = HttpRequest.newBuilder().uri(uri).build();

发送 POST 请求

发送 POST 请求需要设置请求方法为 POST,并可能需要在请求体中发送数据。

// 使用 HttpURLConnection 发送 POST 请求
connection.setRequestMethod("POST");
connection.setDoOutput(true);
try (OutputStream os = connection.getOutputStream()) {
    os.write("request body".getBytes());
}

// 使用 HttpClient 发送 POST 请求
HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://example.com"))
        .header("Content-Type", "application/json")
        .POST(HttpRequest.BodyPublishers.ofString("{\"key\":\"value\"}"))
        .build();

处理 HTTPS 请求

对于 HTTPS 请求,Java 默认会验证证书。如果需要忽略证书验证(仅限测试环境),可以自定义 SSLContext。

java如何联网

TrustManager[] trustAllCerts = new TrustManager[]{
    new X509TrustManager() {
        public void checkClientTrusted(X509Certificate[] chain, String authType) {}
        public void checkServerTrusted(X509Certificate[] chain, String authType) {}
        public X509Certificate[] getAcceptedIssuers() { return null; }
    }
};

SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier((hostname, session) -> true);

标签: java
分享给朋友:

相关文章

java如何输出

java如何输出

输出到控制台 使用 System.out.println() 方法输出内容到控制台,适用于调试或简单信息展示。 示例代码: System.out.println("Hello, World!")…

如何配置java环境

如何配置java环境

下载JDK安装包 访问Oracle官网或OpenJDK官网,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。下载完成后,运行安装程序并按照提示完成安装。 设置环境变量 右键…

java如何配置环境变量

java如何配置环境变量

配置Java环境变量的方法 下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK安装包。运行安装程序并按照提示完成安装,记下JDK的安装路径(例如C:\Program File…

java如何导包

java如何导包

导入包的方法 在Java中,导入包(package)可以通过import语句实现,用于引入其他类或包中的功能。以下是几种常见的导包方式: 导入单个类 import java.util.ArrayL…

如何成为java架构师

如何成为java架构师

掌握扎实的Java基础 深入理解Java核心知识,包括多线程、集合框架、JVM原理、设计模式等。熟悉Java生态中的常用框架如Spring、MyBatis、Hibernate等,并能分析其源码实现。…

java如何调用另一个类的方法

java如何调用另一个类的方法

调用另一个类的方法 在Java中调用另一个类的方法,通常需要创建该类的对象或直接通过类名调用(静态方法)。以下是几种常见的方式: 通过对象实例调用实例方法 创建一个目标类的对象,通过对象调用其方法。…