Java获取Response状态码

在Java中,我们可以使用HttpURLConnection或HttpClient等库来发送HTTP请求并获取服务器的响应。在处理服务器响应时,获取响应的状态码是非常重要的,它包含了服务器对请求的处理结果。本文将介绍如何使用Java来获取服务器响应的状态码,并给出相应的代码示例。

HttpURLConnection

HttpURLConnection是Java标准库中用于发送HTTP请求的类。我们可以使用它来发送GET、POST等请求,并获取服务器的响应。下面是一个使用HttpURLConnection发送GET请求并获取状态码的示例代码:

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

public class HttpURLConnectionExample {

    public static void main(String[] args) {
        String url = "
        try {
            // 创建URL对象
            URL obj = new URL(url);
            // 打开连接
            HttpURLConnection con = (HttpURLConnection) obj.openConnection();
            // 设置请求方法为GET
            con.setRequestMethod("GET");
            // 获取响应状态码
            int responseCode = con.getResponseCode();
            System.out.println("Response Code: " + responseCode);
            // 读取响应内容
            BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
            String inputLine;
            StringBuffer response = new StringBuffer();
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();
            // 打印响应内容
            System.out.println("Response: " + response.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们首先创建了一个URL对象,然后使用openConnection()方法打开连接。接着,我们设置请求方法为GET,并使用getResponseCode()方法获取响应的状态码。

HttpClient

HttpClient是一个功能强大且易于使用的开源Java库,用于发送HTTP请求和处理响应。HttpClient支持各种HTTP方法,并提供了更高级的功能,例如重定向、Cookie管理等。下面是一个使用HttpClient发送GET请求并获取状态码的示例代码:

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;

public class HttpClientExample {

    public static void main(String[] args) {
        String url = "
        try {
            // 创建HttpClient对象
            CloseableHttpClient httpClient = HttpClientBuilder.create().build();
            // 创建HttpGet对象
            HttpGet httpGet = new HttpGet(url);
            // 发送GET请求
            HttpResponse httpResponse = httpClient.execute(httpGet);
            // 获取响应状态码
            int responseCode = httpResponse.getStatusLine().getStatusCode();
            System.out.println("Response Code: " + responseCode);
            // 获取响应内容
            String response = EntityUtils.toString(httpResponse.getEntity());
            // 打印响应内容
            System.out.println("Response: " + response);
            // 关闭HttpClient
            httpClient.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们首先创建了一个CloseableHttpClient对象,然后创建一个HttpGet对象,并设置要请求的URL。接着,我们使用execute()方法发送GET请求,并通过getStatusLine().getStatusCode()方法获取响应的状态码。

结语

通过使用HttpURLConnection或HttpClient库,我们可以方便地发送HTTP请求并获取服务器的响应。获取响应的状态码对于判断请求是否成功、处理服务器返回的错误等非常重要。本文介绍了如何使用Java获取服务器响应的状态码,并给出了相应的代码示例。希望本文对你理解Java中获取Response状态码的方法有所帮助。

参考文献

  • [HttpURLConnection - Java Platform SE 8](
  • [HttpClient Tutorial](