我正在学习使用改造,使用Web服务,我在执行@ GET,@ POST方法时没有问题,但是现在我必须执行将令牌发送到的服务,我真的不知道该怎么做,但我使用POSTMAN,在该字段中,我从Authorization密钥中的Headers发送此字段令牌。我看到了其他使用OkHttpClient的示例,但我想不起来如何实现。
因此,我通过翻新来执行我的服务,与此相同,应该将头部的令牌发送给他。
@GET(Constants.Retrofit.SURE_DO_YOU_LIKE_PRODUCTS)
Call<List<RelatedProducts>> getProductSureDoYouLike();
这是我在POSTMAN中的服务。
答案 0 :(得分:0)
赞:
@GET(Constants.Retrofit.SURE_DO_YOU_LIKE_PRODUCTS)
Call<List<RelatedProducts>> getProductSureDoYouLike(@Header("Content-Type") String contentType, @Header("Authorization") String auth);
如果所有请求都需要一个Content-Type
,则可以修改Retrofit
构建器,以在每个请求中包含标头:
OkHttpClient client;// = new OkHttpClient();
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.connectTimeout(5, TimeUnit.MINUTES)
.writeTimeout(5, TimeUnit.MINUTES)
.readTimeout(5, TimeUnit.MINUTES)
.addInterceptor(chain -> {
Request request = chain.request().newBuilder()
//Add this to include header in every request
.addHeader("Content-Type", "application/json").build();
return chain.proceed(request);
}).build();
client = builder.build();
retrofit = new Retrofit.Builder()
.baseUrl(NetworkConstants.BASE_URL)
.client(client)
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
}
那么您的请求将是:
@GET(Constants.Retrofit.SURE_DO_YOU_LIKE_PRODUCTS)
Call<List<RelatedProducts>> getProductSureDoYouLike(@Header("Authorization") String auth);
然后您将这样致电:
apiService.getProductSureDoYouLike("token");