java response如何获取
获取 Java 中的 HTTP 响应
在 Java 中,可以通过多种方式获取 HTTP 响应,常见的方法包括使用 HttpURLConnection、HttpClient(Java 11+)或第三方库如 Apache HttpClient 和 OkHttp。
使用 HttpURLConnection
HttpURLConnection 是 Java 标准库提供的 HTTP 客户端工具,适用于简单的 HTTP 请求。
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpExample {
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 Body: " + 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 Code: " + response.statusCode());
System.out.println("Response Body: " + response.body());
}
}
使用 Apache HttpClient
Apache HttpClient 是一个功能丰富的第三方库,适用于复杂的 HTTP 请求场景。
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("Response Code: " + response.getStatusLine().getStatusCode());
System.out.println("Response Body: " + EntityUtils.toString(response.getEntity()));
response.close();
client.close();
}
}
使用 OkHttp
OkHttp 是 Square 公司开发的轻量级 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 Code: " + response.code());
System.out.println("Response Body: " + response.body().string());
}
}
}
选择合适的方法
- 如果项目限制使用标准库且需求简单,
HttpURLConnection是合适的选择。 - 对于 Java 11+ 项目,
HttpClient提供了更简洁的 API。 - 如果需要高级功能(如连接池、重试机制),Apache HttpClient 或 OkHttp 是更好的选择。
以上方法均能获取 HTTP 响应,具体选择取决于项目需求和环境限制。






