当前位置:首页 > Java

java如何发送http请求

2026-02-05 08:41:06Java

发送HTTP请求的方法

Java中发送HTTP请求有多种方式,以下是几种常见的方法:

使用HttpURLConnection

HttpURLConnection是Java标准库中的类,适用于简单的HTTP请求。

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

public class HttpUrlConnectionExample {
    public static void main(String[] args) throws Exception {
        URL url = new URL("https://example.com/api");
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("GET");

        int responseCode = connection.getResponseCode();
        System.out.println("Response Code: " + responseCode);

        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());
    }
}

使用HttpClient(Java 11+)

Java 11引入了新的HttpClient,提供更现代的API。

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class HttpClientExample {
    public static void main(String[] args) throws Exception {
        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://example.com/api"))
                .build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}

使用第三方库(如Apache HttpClient)

Apache HttpClient是广泛使用的第三方库,功能强大。

import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class ApacheHttpClientExample {
    public static void main(String[] args) throws Exception {
        CloseableHttpClient client = HttpClients.createDefault();
        HttpGet request = new HttpGet("https://example.com/api");

        CloseableHttpResponse response = client.execute(request);
        System.out.println(EntityUtils.toString(response.getEntity()));
        response.close();
        client.close();
    }
}

使用Spring的RestTemplate

Spring框架提供了RestTemplate,适合Spring项目。

import org.springframework.web.client.RestTemplate;

public class RestTemplateExample {
    public static void main(String[] args) {
        RestTemplate restTemplate = new RestTemplate();
        String response = restTemplate.getForObject("https://example.com/api", String.class);
        System.out.println(response);
    }
}

使用OkHttp

OkHttp是另一个流行的第三方库,性能优异。

java如何发送http请求

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class OkHttpExample {
    public static void main(String[] args) throws Exception {
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder()
                .url("https://example.com/api")
                .build();

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

选择建议

  • 简单需求:HttpURLConnection或Java 11的HttpClient
  • 复杂需求:Apache HttpClient或OkHttp。
  • Spring项目:RestTemplateWebClient

根据项目需求和环境选择合适的工具。

标签: javahttp
分享给朋友:

相关文章

如何运行java文件

如何运行java文件

运行Java文件的方法 确保已安装Java Development Kit (JDK),可通过命令行输入java -version和javac -version验证安装。 编写Java代码并保存为.…

如何搭建java开发环境

如何搭建java开发环境

下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK版本。运行安装程序并按照提示完成安装,建议选择默认路径以减少配置复杂度。 配置环境变量 在系统环境变量中添加JAVA_HO…

eclipse如何创建java

eclipse如何创建java

在Eclipse中创建Java项目 打开Eclipse后,选择菜单栏中的"File" -> "New" -> "Java Project"。在弹出的对话框中输入项目名称,确保"Use de…

vue实现http监听

vue实现http监听

Vue 中实现 HTTP 监听的方法 在 Vue 中监听 HTTP 请求通常可以通过以下几种方式实现: 使用 Axios 拦截器 Axios 是 Vue 生态中常用的 HTTP 客户端,可以通过拦截…

php 实现 java md5

php 实现 java md5

在 PHP 中实现与 Java 相同的 MD5 哈希算法,关键在于确保编码和输出格式的一致性。以下是具体实现方法和注意事项: 确保字符串编码一致 Java 的 String.getBytes() 默…

PHP http长连接的实现

PHP http长连接的实现

HTTP 长连接基础概念 HTTP长连接(Keep-Alive)允许在单个TCP连接上发送和接收多个HTTP请求/响应,减少重复建立和断开连接的开销。HTTP/1.1默认启用长连接,而HTTP/1.0…