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

今天在写一个音乐播放器的时候使用到了百度音乐api查歌词,使用Okhttp+Retrofit,出现了403 forbidden 的情况


查资料得知,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();

运行结果:


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值