Описание проблемы:
Загрузка не удалась во время подтверждения SSL. Эта проблема связана с определенными условиями сети:
- Происходит при использовании Zain (сетевого оператора на Ближнем Востоке).
Загрузка работает нормально при переключении на STC (другой оператор сети) или при отключении VPN.
Шаги по воспроизведению:
- Настройте запрос на загрузку изображения по заранее подписанному URL-адресу на Amazon AWS. S3 с использованием OkHttp и службы загрузки Android.
- Используйте устройство, подключенное через оператора сети Zain с включенным VPN.
- Попытка загрузку и наблюдайте за сбросом соединения ошибка.
- Повторите, указав STC в качестве оператора и отключив VPN, и убедитесь, что загрузка работает успешно.
Загрузка должна завершиться успешно через HTTPS независимо от оператора сети или VPN.
Версии ОС и библиотек:
- Версия службы загрузки Android: 4.9.2
- Версия Android и уровень API: Android 14 (уровень API 34) )
- HTTP-стек: OkHttpStack
Код: Выделить всё
suspend fun uploadPhoto(
uploadId: String,
preSignedUrl: String,
mimeType: String,
filePath: String,
postName: String,
) {
val request = BinaryUploadRequest(context, preSignedUrl).apply {
setUploadID(uploadId)
setMethod("PUT")
addHeader("Content-Type", mimeType)
setFileToUpload(filePath)
startUpload()
}
}
Код: Выделить всё
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:191)
at com.android.org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:238)
at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.kt:379)
at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.kt:337)
at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:209)
at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
at net.gotev.uploadservice.okhttp.OkHttpStackRequest.getResponse(OkHttpStackRequest.kt:94)
at net.gotev.uploadservice.HttpUploadTask.upload(HttpUploadTask.kt:50)
at net.gotev.uploadservice.UploadTask.run(UploadTask.kt:144)
- Переход с Zain в STC решает проблему, предполагая, что она может быть связана с сетью.
- Отключение VPN также обеспечивает успешную загрузку.
< li>Протестировал процесс загрузки с использованием различных стеков HTTP; проблема с OkHttpStack сохраняется.
Подробнее здесь: https://stackoverflow.com/questions/792 ... 3-using-ok
Мобильная версия