在OkHttp中,可以通过实现一个自定义的Interceptor来转发`HttpServletRequest`。以下是一个简单的示例: 1. 首先,创建一个实现`Interceptor`接口的类,例如`ForwardingInterceptor`: ```java import java.io.IOException; import okhttp3.Interceptor; import okhttp3.Response; public class ForwardingInterceptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { // 在这里获取原始的请求和响应 Request originalRequest = chain.request(); Response originalResponse = chain.proceed(originalRequest); // 创建一个新的请求,将原始请求的信息复制到新的请求中 Request newRequest = originalRequest.newBuilder() .url("新的URL") // 设置新的URL .header("原始请求头", originalRequest.headers().get("原始请求头")) // 复制原始请求头 .method(originalRequest.method(), originalRequest.body()) // 复制原始请求方法和请求体 .build(); // 使用新的请求继续处理链式调用,并将结果返回给客户端 return chain.proceed(newRequest); } } ``` 2. 然后,在创建`OkHttpClient`时,添加这个自定义的拦截器: ```java import okhttp3.OkHttpClient; public class OkHttpClientFactory { public static OkHttpClient create() { OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(new ForwardingInterceptor()) // 添加自定义拦截器 .build(); return client; } } ``` 现在,当你使用这个`OkHttpClient`实例发送请求时,它会将原始的`HttpServletRequest`信息复制到新的请求中,并发送到新的URL。 [2023-12-14 13:59:05 | AI写代码神器 | 432点数解答]