我正在通过Yelp Fusion文档记录的Retrofit GET请求传递授权标头,如下所示:
授权:持票人MY_API_KEY
我在onCreate()方法中添加了一个网络拦截器,如下所示:
OkHttpClient.Builder okHttpBuilder = new OkHttpClient.Builder();
okHttpBuilder.addInterceptor(new Interceptor() {
@Override
public okhttp3.Response intercept(Interceptor.Chain chain) throws IOException {
Request original = chain.request();
// Request customization: add request headers
Request.Builder requestBuilder = original.newBuilder()
.addHeader("Authorization", "Bearer MY_API_KEY");
Request request = requestBuilder.build();
return chain.proceed(request);
}
});
//Yelp Client init
yelpRetrofit = new Retrofit.Builder()
.baseUrl("https://httpbin.org/")
.client(okHttpBuilder.build())
.addConverterFactory(GsonConverterFactory.create())
.build();
yelpClient = yelpRetrofit.create(YelpClient.class);
这是我的YelpClient类:
public interface YelpClient {
@GET("headers")
Call<YelpJSON> searchTest(); }
这是我在发送请求时得到的回复:
{“error”:{“code”:“TOKEN_MISSING”,“description”:“必须提供访问令牌才能使用此端点。”}}
我已成功检索到Yelp Fusion API与Postman的响应,并使用相同的参数和标题作为我的Retrofit请求进行卷曲,所以我不能责怪Yelp。我还尝试静态和动态设置标头没有成功。任何人都可以帮我弄清楚这里有什么问题吗?