即使设置了授权令牌也可能因改装而出现错误401

尝试使用@POST访问api,并且我已经设置了@Header("Authorization") String TOKEN

我已经尝试过使用@GET并成功了,但是我传递了一些表单字段,因此我需要使用@POST

@POST("details")
@FormUrlEncoded
Call<Play> playTrack(
        @Header("Authorization") String TOKEN,@Field("event_id") int event_id,@Field("longitude") double longitude,@Field("latitude") double latitude    
);
tickerly 回答:即使设置了授权令牌也可能因改装而出现错误401

尝试对注释使用Multipart

@Multipart
@POST("details")
Call<ResponseBody> playTrack(
    @Header("Authorization") String token,@Part("event_id") RequestBody eventId,@Part("longitude") RequestBody longitude,@Part("latitude") RequestBody latitude,);

确保将RequestBody作为参数传递

val latitude = RequestBody.create(MediaType.parse("text/plain"),doubleLatitude.toString())
,

尝试创建标头拦截器并将其添加到OkHttpClient:

Interceptor headerIntercepter  = new Interceptor() {
        @Override
        public okhttp3.Response intercept(Chain chain) throws IOException {

      return chain.proceed(    chain.request().newBuilder().addHeader("authorization- 
client",accessToken).build());

        }
    };

OkHttpClient client = new OkHttpClient.Builder().connectTimeout(120,TimeUnit.SECONDS).readTimeout(120,TimeUnit.SECONDS)
            .addInterceptor(headerIntercepter)
            .build();

    try {

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(Server_URL)
                .client(client)
                .addConverterFactory(GsonConverterFactory.create())
                .build();

        apiService = retrofit.create(Api.class);
,
  

看到401响应表示请求已成功执行   服务器返回该状态码。这不是问题   翻新,但是无论您包括什么身份验证信息   在服务器期望的请求中。

     

尝试使用具有相同数据的邮递员进行检查

注:不要忘记将令牌类型作为令牌的前缀

本文链接:https://www.f2er.com/3168473.html

大家都在问