改装android header用户代理未显示在日志中

改装android header用户代理未显示在日志中,android,android-studio,retrofit,user-agent,Android,Android Studio,Retrofit,User Agent,我做了一个拦截器,并像这样设置了头用户代理 public class UserAgentInterceptor implements Interceptor { private final String userAgent; public UserAgentInterceptor(String userAgent) { this.userAgent = userAgent; } @Override public Response intercept(Chain chain) thr

我做了一个拦截器,并像这样设置了头用户代理

public class UserAgentInterceptor implements Interceptor {

private final String userAgent;

public UserAgentInterceptor(String userAgent) {
    this.userAgent = userAgent;
}

@Override
public Response intercept(Chain chain) throws IOException {
    Request originalRequest = chain.request();
    Request requestWithUserAgent = originalRequest.newBuilder()
            .header("User-Agent", userAgent)
            .build();
    return chain.proceed(requestWithUserAgent);
}
  private RestAdapter getRestAdapterFromUrl(String url)
{
    OkHttpClient okHttp = new OkHttpClient();
    okHttp.setConnectTimeout(18000, TimeUnit.MILLISECONDS);
    okHttp.setReadTimeout(18000, TimeUnit.MILLISECONDS);

    // On ajoute user agent intercepteur

    okHttp.networkInterceptors().add(new UserAgentInterceptor(VersionUtil.getUserAgent()));


    RestAdapter.Builder builder = new RestAdapter.Builder()
            .setEndpoint(url)
            .setClient(new RestoflashClientWrapper(new OkClient(okHttp)))
            //.setConverter(new retrofit.converter.JacksonConverter(jsonMapperUnwrapped))
            .setConverter(new JacksonConverter(jsonMapper,jsonMapperUnwrapped))
                    //.setRequestInterceptor(new RestoFlashRequest())
            .setLogLevel(RestAdapter.LogLevel.FULL);

    builder.setRequestInterceptor(interceptor);
    builder.setLogLevel(RestAdapter.LogLevel.HEADERS_AND_ARGS).setLog(new AndroidLog("RETROFIT_LOG"));
    return builder.build();
}
}

我像这样添加log showen

public class UserAgentInterceptor implements Interceptor {

private final String userAgent;

public UserAgentInterceptor(String userAgent) {
    this.userAgent = userAgent;
}

@Override
public Response intercept(Chain chain) throws IOException {
    Request originalRequest = chain.request();
    Request requestWithUserAgent = originalRequest.newBuilder()
            .header("User-Agent", userAgent)
            .build();
    return chain.proceed(requestWithUserAgent);
}
  private RestAdapter getRestAdapterFromUrl(String url)
{
    OkHttpClient okHttp = new OkHttpClient();
    okHttp.setConnectTimeout(18000, TimeUnit.MILLISECONDS);
    okHttp.setReadTimeout(18000, TimeUnit.MILLISECONDS);

    // On ajoute user agent intercepteur

    okHttp.networkInterceptors().add(new UserAgentInterceptor(VersionUtil.getUserAgent()));


    RestAdapter.Builder builder = new RestAdapter.Builder()
            .setEndpoint(url)
            .setClient(new RestoflashClientWrapper(new OkClient(okHttp)))
            //.setConverter(new retrofit.converter.JacksonConverter(jsonMapperUnwrapped))
            .setConverter(new JacksonConverter(jsonMapper,jsonMapperUnwrapped))
                    //.setRequestInterceptor(new RestoFlashRequest())
            .setLogLevel(RestAdapter.LogLevel.FULL);

    builder.setRequestInterceptor(interceptor);
    builder.setLogLevel(RestAdapter.LogLevel.HEADERS_AND_ARGS).setLog(new AndroidLog("RETROFIT_LOG"));
    return builder.build();
}
也不是RestAdapter.LogLevel.HEADERS_和_ARGS。我尝试了RestAdapter.LogLevel.FULL,但在日志上我看不到android studio日志上的用户代理标题


谢谢你的帮助

我个人也有同样的问题

new OkHttpClient.Builder()
.addInterceptor(HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY))
我必须添加一个拦截器来显式记录标题

@Override
public Response intercept(Chain chain) throws IOException {
    Request original = chain.request();
    Request.Builder requestBuilder = original.newBuilder();
    /*log debug info*/
    Request request = requestBuilder.build();
    for (int i = 0; i < request.headers().size(); i++) {
        Timber.tag("OkHttp").d(String.format("%s: %s", request.headers().name(i), request.headers().value(i)));
    }
    return chain.proceed(request);
}
@覆盖
公共响应拦截(链)引发IOException{
Request original=chain.Request();
Request.Builder requestBuilder=original.newBuilder();
/*日志调试信息*/
Request=requestBuilder.build();
对于(int i=0;i
我还使用了一个允许记录“curl”的curl拦截器,如果您想通过“Postman”之类的工具快速进行测试,这很有用

截取器样本


希望能满足你的需要

什么是RestoflashClientWrapper和OkClient?他们可能会失去俄克拉荷马州的拦截器。我建议在你的拦截器上放置断点,以确保它被调用。我已经这样做了,我确信我通过了拦截器