Сервер приложения, в котором я работаю, использует сертификат для разрешения запросов.У меня он установлен, например, в настольном браузере Chrome и работает нормально.Это обычный сертификат с расширением .cer
Теперь я должен заставить этот сертификат работать и в моем приложении для Android, и, честно говоря, я никогда этого не делал, и я немногоlost.
Для выполнения запросов я использую okhttp2, как вы можете видеть в этом примере:
public String makeServiceCall(String url, JSONObject data) {
final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
OkHttpClient client = new OkHttpClient();
client.setConnectTimeout(45, TimeUnit.SECONDS);
client.setReadTimeout(45, TimeUnit.SECONDS);
client.setProtocols(Arrays.asList(Protocol.HTTP_1_1));
RequestBody body = RequestBody.create(JSON, data.toString());
Request request = new Request.Builder()
.url(url)
.header("Accept","application/json")
.post(body)
.build();
try {
Response response = client.newCall(request).execute();
return response.body().string();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
Пока все работает отлично, но после поиска и чтения учебников, примеров и т. д., (многие из них с этой страницы) Мне не удалось заставить его работать.Сделайте так, чтобы он работал с сертификатом.
Никогда не делая этого и будучи немного растерянным, я был бы признателен за следующие разъяснения:
Сертификат в формате .cerчто я имею, я полагаю, я должен преобразовать его в другой формат, чтобы иметь возможность использовать его в Android ... Это правильно?Если это правильно, как мне это сделать?
хорошо, мой сертификат уже преобразован в BKS и размещен в папке res / raw, но я все еще не могу применитьэто успешно к запросу okhttp2 ..
- Один раз с сертификатом в правильном формате, Как это реализовано с запросами, которые я уже делаю в коде, который я установил в качестве примера?
Я искал информацию о том, как это сделать, используя okhttp3, но я также не смог авторизовать запросы.
Эта статья была мне полезна, ноЯ не использую модификацию, и адаптация к okhttp2 тоже не работает.
Буду признателен за объяснение, как это сделать