代码之家  ›  专栏  ›  技术社区  ›  Tom Finet

如何从android客户端进行经过身份验证的django rest api调用?

  •  2
  • Tom Finet  · 技术社区  · 8 年前

    我正在使用改装向后端发出请求。下面是我现在正在做的,试图对RESTAPI进行经过身份验证的网络调用。

    @Override
    public void loadAllUsers() {
        Call<List<User>> call = userServiceApi.loadAllUsers();
        call.enqueue(new Callback<List<User>>() {
            @Override
            public void onResponse(@NonNull Call<List<User>> call, @NonNull Response<List<User>> response) {
                if (response.isSuccessful()) {
                    List<User> users = response.body();
                    eventBus.post(new LoadAllUsersEvent(users));
                } else {
                    eventBus.post(new FailLoadAllUsersEvent());
                    Log.d(TAG, response.message());
                }
            }
    
            @Override
            public void onFailure(@NonNull Call<List<User>> call, @NonNull Throwable t) {
                eventBus.post(new LoadUsersUnreachableServerEvent());
                Log.d(TAG, t.toString());
            }
        });
    }
    

    以下是与此api请求相关的改装界面:

    @GET("users/")
    Call<List<User>> loadAllUsers(@Header("Authorization: Token ") Token token);
    

    对于django rest,我做错了什么 Token Authentication 工作并进行经过身份验证的django rest api调用?

    1 回复  |  直到 8 年前
        1
  •  4
  •   Andrej Jurkin    8 年前

    @GET("users/")
    Call<List<User>> loadAllUsers(@Header("Authorization") Token token);
    

    您传递的值应格式化为 "Token %s"

    这不是一个很好的解决方案,因为您必须将令牌传递给所有api调用。

    解决授权问题的更好方法是使用 OkHttp client

    推荐文章