所以我终于想通了。这是
okhttp使用React Native 覆盖User-Agent的解决方案。
创建一个名为的文件
CustomInterceptor.java:
package com.trevor;import com.squareup.okhttp.Interceptor;import com.squareup.okhttp.Request;import com.squareup.okhttp.Response;import java.io.IOException;public class CustomInterceptor implements Interceptor { public CustomInterceptor() {} @Override public Response intercept(Interceptor.Chain chain) throws IOException { Request originalRequest = chain.request(); Request requestWithUserAgent = originalRequest.newBuilder() .removeHeader("User-Agent") .addHeader("User-Agent", "Trevor") .build(); return chain.proceed(requestWithUserAgent); }}然后,在
MainActivity.java覆盖 的
onCreate方法:
...import com.facebook.react.modules.network.OkHttpClientProvider;...public class MainActivity extends ReactActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); attachInterceptor(); } private void attachInterceptor() { OkHttpClient client = OkHttpClientProvider.getOkHttpClient(); client.networkInterceptors().add(new CustomInterceptor()); }}请注意,我正在导入
com.facebook.react.modules.network.OkHttpClientProvider;和覆盖该客户端,而不是创建一个香草,
OkHttpClient因为这是React Native将使用的那个。



