尝试使用node.js调用AWS上托管的rest api时,禁止响应403

时间:2017-08-26 13:00:49

标签: android web-services amazon-web-services retrofit retrofit2

我正在尝试使用Android中的改装(改装:2.3.0)调用一个安静的API,并且API调用来自Postman和iOS,但不适用于Android。 Apis工作正常,不使用JWT授权标头(Bearer auth_token),如login&注册API,但当我尝试使用Authorization标头时,它返回403禁止。我在登录和注册响应时也得到了cookie标题。

这是我的代码;

    ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class);
    final Call<GetUserResponse> response = apiService.getUserInformation(ConstantUtils.TOKEN_PREFIX + sharedPreferences.getString(ConstantUtils.PREF_TOKEN, ""));

    response.enqueue(new Callback<GetUserResponse>() {
        @Override
        public void onResponse(Call<GetUserResponse> call, retrofit2.Response<GetUserResponse> rawResponse) {
            try {

                if (rawResponse.code() == 200 && rawResponse.body() != null) {

                    saveUserModelInSharedPreferences(rawResponse.body());

                    stopSelf();

                } else if (rawResponse.code() == 401) {

                    // we will have to call login api here
                    CallLoginApiIfFails callLoginApiIfFails = new CallLoginApiIfFails(GetUserDataService.this, GET_USER_DATA);
                    callLoginApiIfFails.OnApiFailDueToSessionListener(GetUserDataService.this);

                }

            } catch (Exception e) {
                e.printStackTrace();

                stopSelf();
            }
        }

        @Override
        public void onFailure(Call<GetUserResponse> call, Throwable throwable) {

            stopSelf();
        }
    });

和这个改造界面;

 @GET("user")
    Call<GetUserResponse>
    getUserInformation(@Header("Authorization") String token);

Api客户端

public static Retrofit getClient() {
        if (retrofit == null) {
            retrofit = new Retrofit.Builder()
                    .baseUrl(ConstantUtils.BASE_URL)
                    .client(okClient())
                    .addConverterFactory(GsonConverterFactory.create(gson))
                    .build();
        }
        return retrofit;
    }

,错误日志是;

Response{protocol=http/1.1,
code=403, message=Forbidden, 
url=http://pointters-api-dev3.us-east-1.elasticbeanstalk.com:9000/user/setting}

0 个答案:

没有答案