Как исправить 401 Несанкционированная ошибка с использованием дооснащения в android? - PullRequest
1 голос
/ 25 января 2020

Я использовал библиотеку retrofit2 в android. Я получаю 401 несанкционированную ошибку. если кто-то решил эту проблему, пожалуйста, сообщите мне здесь. Я учусь использовать retrofit2 в android. это класс APIClient. Класс APIClient:

           public class APIClient {
                private static Retrofit retrofit = null;
                private static OkHttpClient okHttpClient = new OkHttpClient.Builder()
                        .connectTimeout(7, TimeUnit.MINUTES)
                        .readTimeout(7, TimeUnit.MINUTES)
                        .writeTimeout(7, TimeUnit.MINUTES)
                        .build();
                public static Retrofit getClient() {
                    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
                    interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
                    OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();

                    retrofit = new Retrofit.Builder().baseUrl("http://www.example.com/").addConverterFactory(GsonConverterFactory.create())
                            .client(okHttpClient).build();

                    return retrofit;
                }
            }

это мой интерфейс.

                    public interface APIInterface {
                        @GET("/teacher/api/getStudentTakeAttendanceList")
                        Call<List<Apiresponse>> getstudentAttendanceListView(@Query("teacherId") int userId);

                    //    Callback<List<Apiresponse>> studentAttendanceListView(@Query("teacherId") int userId);
                    }         

это мой последний звонок.

final Call<List<Apiresponse>> getstudentAttendanceListView = apiInterface.getstudentAttendanceListView(userId);
            getstudentAttendanceListView.enqueue(new Callback<List<Apiresponse>>() {
                    @Override
                    public void onResponse(Call<List<Apiresponse>> call, Response<List<Apiresponse>> response) {
                        Log.d("responsecode:::", "" + response.code());

                        if (progressDialog.isShowing()) {
                            progressDialog.dismiss();
                        }

                        Log.e("response::", "" + response.errorBody());

    //                    Log.e("response::", "" + response.body());

                    }

                    @Override
                    public void onFailure(Call<List<Apiresponse>> call, Throwable t) {
                        call.cancel();
                        if (progressDialog.isShowing()) {
                            progressDialog.dismiss();
                        }

                    }
                });
in app.gradle file.
        compile 'com.squareup.retrofit2:retrofit:2.0.2'
        compile 'com.squareup.retrofit2:converter-gson:2.0.2'
    output.
    responsecode:::: 401
    response::: okhttp3.ResponseBody$1@537beb4c

Ответы [ 2 ]

0 голосов
/ 25 января 2020

Вы должны добавить свой токен доступа API в заголовок запроса, вы должны спросить у вашего разработчика API ключи заголовков, вы также должны сначала попробовать запрос с почтальоном

0 голосов
/ 25 января 2020

A 401 Unauthorized error означает, что у вас нет прав доступа. В вашем случае это означает, что вы должны добавить заголовок с accessToken.

Здесь объясняется, как это сделать.

...