【问题标题】:Retrofit 2 adding new line character at the end of header string改造 2 在标题字符串的末尾添加换行符
【发布时间】:2018-03-24 22:13:30
【问题描述】:

我正在使用 Retrofit v2.4,它在标题中添加了一个换行符,这导致我的调用失败

“授权:基础 dXNlcm5hbWU6cGFzc3dvcmQ=\n”

解决办法是什么?

【问题讨论】:

  • 分享你的retrofit call和interface的代码
  • @Sam 你解决了这个问题吗?我也遇到过这种情况

标签: java android retrofit2 okhttp


【解决方案1】:

创建一个实现 okhttp3.Interceptor 并覆盖 intercept() 的类,并对标头执行任何您想要的操作,无论是传出还是传入:

@Override
    public Response intercept(Chain chain) throws IOException {
        Request initialReq = chain.request();
        Headers outgoingHeaders = initialRequest.headers()
        ...
        Request modRequest = initialReq.newBuilder()
              .addHeader(...);

        Response response = chain.proceed(modRequest);
        Headers incomingHeaders = response.headers();
        ...
        return response;
}

别忘了把它添加到httpclient:

OkHttpClient client = new OkHttpClient.Builder()
            ...
            .addInterceptor(headersInterceptor)
            .build();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多