拦截器添加公共请求头集合

import okhttp3.*;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class ApiTest {
    private final OkHttpClient client;

    public ApiTest() {
        // 创建公共请求头集合
        Map<String, String> commonHeaders = new HashMap<>();
        commonHeaders.put("Authorization", "Bearer YOUR_ACCESS_TOKEN");
        commonHeaders.put("User-Agent", "ApiTest/1.0");
        commonHeaders.put("X-Request-ID", "REQ-123456");
        commonHeaders.put("Accept", "application/json");

        // 创建拦截器
        Interceptor headerInterceptor = chain -> {
            Request originalRequest = chain.request();
            Request.Builder builder = originalRequest.newBuilder();

            // 批量添加公共请求头
            for (Map.Entry<String, String> entry : commonHeaders.entrySet()) {
                builder.addHeader(entry.getKey(), entry.getValue());
            }

            return chain.proceed(builder.build());
        };

        // 创建 OkHttpClient 实例
        this.client = new OkHttpClient.Builder()
                .addInterceptor(headerInterceptor)
                .build();
    }

    // 测试接口方法
    public void testApiEndpoint(String url) throws IOException {
        Request request = new Request.Builder()
                .url(url)
                .build();

        try (Response response = client.newCall(request).execute()) {
            System.out.println("Response Code: " + response.code());
            System.out.println("Response Body: " + response.body().string());
        }
    }

    public static void main(String[] args) throws IOException {
        ApiTest tester = new ApiTest();
        tester.testApiEndpoint("https://httpbin.org/get");
    }
}
posted @ 2025-07-01 10:58  kiss_sheep  阅读(4)  评论(0)    收藏  举报