MST

星途 面试题库

面试题:Java中使用HttpClient处理复杂HTTP请求头及响应处理

在Java中使用Apache HttpClient库,如何设置复杂的HTTP请求头(如包含自定义认证信息等),并且在接收到响应后,如何根据不同的HTTP状态码进行针对性处理,写出实现代码。
40.5万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
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;

import java.io.IOException;

public class HttpClientExample {
    public static void main(String[] args) {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        HttpGet httpGet = new HttpGet("http://example.com");

        // 设置复杂的HTTP请求头,例如自定义认证信息
        httpGet.setHeader("Authorization", "Bearer your_token");
        httpGet.setHeader("Custom-Header", "custom_value");

        try {
            HttpResponse response = httpClient.execute(httpGet);
            int statusCode = response.getStatusLine().getStatusCode();

            // 根据不同的HTTP状态码进行针对性处理
            if (statusCode == 200) {
                String responseBody = EntityUtils.toString(response.getEntity());
                System.out.println("成功响应: " + responseBody);
            } else if (statusCode == 401) {
                System.out.println("未授权,请检查认证信息");
            } else if (statusCode == 404) {
                System.out.println("资源未找到");
            } else {
                System.out.println("其他状态码: " + statusCode);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                httpClient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}