您的位置:首页 > 理论基础 > 计算机网络

Okhttp+Retrofit下访问百度音乐api出现403 forbidden的解决方案

2018-03-10 11:19 537 查看
初步猜测原因:

okhttp并非原生的http请求,它在header里面并没有真正的User-Agent,而是“okhttp/版本号”这样的字符串;

解决方案:

为okhttp设置User-Agent可以解决问题。

OkHttpClient.Builder builder = new OkHttpClient().newBuilder() ;
builder.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request newRequest = chain.request().newBuilder()
.removeHeader("User-Agent")
.addHeader(
"User-Agent",
"Mozilla/5.0 (
Windows; U; Windows NT 5.1; en-US; rv:0.9.4
)"
).build() ;
return chain.proceed(newRequest);
}
}) ;


OkHttpClient client = builder.build() ;

Retrofit retrofit  = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(FastJsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.client(client)
.build();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: