通过翻新2在标头中发送数据来执行服务

时间:2018-11-16 15:20:24

标签: android json web-services android-studio retrofit2

我正在学习使用改造,使用Web服务,我在执行@ GET,@ POST方法时没有问题,但是现在我必须执行将令牌发送到的服务,我真的不知道该怎么做,但我使用POSTMAN,在该字段中,我从Authorization密钥中的Headers发送此字段令牌。我看到了其他使用OkHttpClient的示例,但我想不起来如何实现。

因此,我通过翻新来执行我的服务,与此相同,应该将头部的令牌发送给他。

@GET(Constants.Retrofit.SURE_DO_YOU_LIKE_PRODUCTS)
    Call<List<RelatedProducts>> getProductSureDoYouLike();

这是我在POSTMAN中的服务。

enter image description here

1 个答案:

答案 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");