HTTPS Получить запрос не работает в android retrofit2 - PullRequest
0 голосов
/ 06 марта 2020

Я хотел бы отправить запрос на получение https на мой сервер, используя android retrofit2.

Если я отправляю тот же запрос с http, он работает нормально.

Всякий раз, когда я отправляю запрос https, не работает.

Моя конечная точка:

https://xxxx:xxx@xxx/rest/xxx

Мой фрагмент кода:

String base = uname + ":" + pwd;

OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
httpClient.addInterceptor(new Interceptor() {
    @Override
    public okhttp3.Response intercept(Chain chain) throws IOException {
        Request original = chain.request();
        Request.Builder requestBuilder = original.newBuilder()
            .header("Authorization", base);

        Request request = requestBuilder.build();
        return chain.proceed(request);
    }
});

OkHttpClient client = httpClient.build();

Retrofit rulesRetrofit = new retrofit2.Retrofit.Builder()
    .baseUrl(HttpsRuels)
    .addConverterFactory(GsonConverterFactory.create())
    .client(client)
    .build();
cloudRulesDataInterface = rulesRetrofit.create(APInterface.class);

Call < ResponseBody > rulesCall = cloudRulesDataInterface.getRulesFromCloud();
rulesCall.enqueue(new Callback < ResponseBody > () {
    @Override
    public void onResponse(Call < ResponseBody > call, Response < ResponseBody > response) {
        if (response.isSuccessful()) {
            try {
                Log.d(TAG, "response from success =" + response.body().string());
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            try {
                Log.d(TAG, "response from error =" + response.errorBody().string());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

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

    }
});

Всегда я получаю неавторизованный ответ от сервера. Когда я тестировал почтальона, он работал нормально. Но в android не работал.

1 Ответ

0 голосов
/ 06 марта 2020

Обратитесь к этому ответу. Вам необходимо включить использование SSL-сертификата в вашем коде модифицированной логики c.

HTTPS IN RETROFIT

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...