Лучший способ достичь этого, безусловно, заключается в использовании Реактивного программирования , чтобы вы могли иметь своего рода обратный вызов, когда все вызовы сделаны для выполнения другого действия.
Более простым способом было бы подсчитать общее количество звонков, которое вам нужно сделать, и сделать следующее:
// find here the total of calls you need to make before the loop
totalCount = ??
var = 0
// and later, as retrofit requests are asynchronous, on the last upload the condition will be valid and the progress should dismiss
request.enqueue(object : Callback {
override fun onResponse(call: Call, response: Response) {
Timber.d( response.toString())
var = var + 1
if(var == totalCount)
progresRing.dismiss()
}
override fun onFailure(call: Call, t: Throwable) {
Timber.d(t.toString())
}
})
У Вас есть две практических опции:
Встают Ваше собственное Приблизительно. Можно сделать это с OpenSSL и существует много информации о Google там.
Продолжают использовать Ваш самоподписанный сертификат, но добавляют открытый ключ к Вашим доверяемым сертификатам в браузере. Если Вы находитесь в домене Active Directory, это может быть сделано автоматически с групповой политикой.
Необходимо было бы попросить у типичных людей сертификата этого. Для простоты использования я добрался бы с FQDN, хотя, Вы могли бы использовать субдомен для своего уже зарегистрированного: https://mybox.example.com
Также Вы могли бы хотеть посмотреть на Wildcard-сертификаты, предоставляя общий сертификат для (например). https://*.example.com/-даже применимый для виртуального хостинга, должен Вы нуждаться в больше, чем просто этот сертификат
, Сертифицирующий под - или sub-sub домены FQDN , должен быть стандартным бизнесом - возможно, не для point& нажмите больших парней что гордый самих предоставить сертификаты всего за 2 минуты.
Короче говоря: сделать сертификат доверяло рабочей станцией, которую Вы будете иметь к любому
Это весь Ваш выбор. Выберите свой яд.
Я бы добавил это как комментарий, но это было немного длинно.
Это не совсем ответ на ваши вопросы, но на практике я обнаружил, что это не рекомендуется использовать домен .local - даже если он находится в вашей «локальной» среде тестирования, с вашим собственным DNS-сервером.
Я знаю, что Active Directory по умолчанию использует имя .local при установке DNS, но даже сотрудники Microsoft говорят, что этого следует избегать.
Если у вас есть контроль над DNS-сервером, вы можете использовать .com, .net или домен .org - даже если он внутренний и частный. Таким образом, вы можете фактически купить доменное имя, которое вы используете внутри, а затем купить сертификат для этого доменного имени и применить его к своему локальному домену.
Я думаю, что ответ НЕТ.
из коробки браузеры не будут доверять сертификатам, пока они не будут окончательно проверены кем-то заранее запрограммированным в браузер, например, verisign, register.com.
вы можете получить только подтвержденный сертификат для глобально уникального домена.
поэтому я предлагаю вместо myapp.local использовать myapp.local.yourcompany.com, для которого вы сможете получить сертификат при условии, что у вас есть yourcompany.com. вы думали, это будет стоить несколько сотен в год.
также имейте в виду, что сертификаты с подстановочными знаками могут быть только одного уровня - так что вы можете использовать их для a.yourcompany.com и local.yourcompany.com, но, возможно, не для Bayourcompany .com или myapp.local.yourcompany.com, если вы не заплатите больше.
(кто-нибудь знает, это зависит от типа подстановочного сертификата? доверяют ли суб-субдомены основные браузеры?)