Sslprotocolexception: ошибка чтения: ssl = 0x9af236c0: сбой в библиотеке SSL, обычно ошибка протокола в эмуляторе AndroiAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Sslprotocolexception: ошибка чтения: ssl = 0x9af236c0: сбой в библиотеке SSL, обычно ошибка протокола в эмуляторе Androi

Сообщение Anonymous »

Я использую следующий метод для чтения потока. < /p>

public static String readStream(InputStream inputStream) {
try {
ByteArrayOutputStream bo = new ByteArrayOutputStream();
int i = inputStream.read();
while (i != -1) {
bo.write(i);
i = inputStream.read();
}
return bo.toString();
} catch (IOException e) {
e.printStackTrace();
return "";
}
}
< /code>

Я получаю следующее исключение в этой строке < /p>

int i = inputStream.read();
< /code>

Исключение: < /p>

javax.net.ssl.SSLProtocolException: Read error: ssl=0x9af236c0: Failure in SSL library, usually a protocol error
2019-03-15 16:25:25.978 5367-5389/com.healics.myhealics W/System.err: error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT (external/boringssl/src/crypto/cipher/e_aes.c:1143 0x989b8e9f:0x00000000)
2019-03-15 16:25:25.978 5367-5389/com.healics.myhealics W/System.err: error:1000008b:SSL routines:OPENSSL_internal:DECRYPTION_FAILED_OR_BAD_RECORD_MAC (external/boringssl/src/ssl/tls_record.c:277 0x989b8e9f:0x00000000)
2019-03-15 16:25:25.979 5367-5389/com.healics.myhealics W/System.err: at com.android.org.conscrypt.NativeCrypto.SSL_read(Native Method)
2019-03-15 16:25:25.980 5367-5389/com.healics.myhealics W/System.err: at com.android.org.conscrypt.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:741)
2019-03-15 16:25:25.980 5367-5389/com.healics.myhealics W/System.err: at com.android.okhttp.okio.Okio$2.read(Okio.java:136)
2019-03-15 16:25:25.980 5367-5389/com.healics.myhealics W/System.err: at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:211)
2019-03-15 16:25:25.980 5367-5389/com.healics.myhealics W/System.err: at com.android.okhttp.okio.RealBufferedSource.read(RealBufferedSource.java:50)
2019-03-15 16:25:25.980 5367-5389/com.healics.myhealics W/System.err: at com.android.okhttp.internal.http.Http1xStream$FixedLengthSource.read(Http1xStream.java:393)
2019-03-15 16:25:25.980 5367-5389/com.healics.myhealics W/System.err: at com.android.okhttp.okio.RealBufferedSource$1.read(RealBufferedSource.java:371)
2019-03-15 16:25:25.981 5367-5389/com.healics.myhealics W/System.err: at java.io.BufferedInputStream.fill(BufferedInputStream.java:248)
2019-03-15 16:25:25.982 5367-5389/com.healics.myhealics W/System.err: at java.io.BufferedInputStream.read(BufferedInputStream.java:267)
2019-03-15 16:25:25.983 5367-5389/com.healics.myhealics W/System.err: at com.interrahealth.i3user.util.StreamReader.readStream(StreamReader.java:18)
< /code>

Теперь это происходит только на эмуляторе, когда я запускаю код в реальном устройстве Android, оно не происходит. Это прерывистая проблема, иногда возникающая не каждый раз.private static String mGetResponseFromNetworkRequest(String userPass, String apiEndpoint, String
outputStreamBytes, String requestMethod, String contentType) {
long startTime = System.currentTimeMillis();
String response = "";
Logger.d("apiEndpoint: " + apiEndpoint);
try {
HttpURLConnection httpURLConnection = getHttpUrlConnectionWithDigestAuth(apiEndpoint, requestMethod);
httpURLConnection.setRequestMethod(requestMethod);
httpURLConnection.setRequestProperty("Content-Type", contentType);
httpURLConnection.setRequestProperty("Content-Language", "en-US");
httpURLConnection.setRequestProperty("charset", "utf-8");
httpURLConnection.addRequestProperty("User-Agent", "XYZ");
httpURLConnection.addRequestProperty("Full-App-Version", BuildConfig.VERSION_NAME);
httpURLConnection.addRequestProperty("Platform", "Android");
httpURLConnection.setUseCaches(false);
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);

DataOutputStream dataOutputStream = new DataOutputStream(httpURLConnection.getOutputStream());
dataOutputStream.writeBytes(outputStreamBytes);

dataOutputStream.flush();
dataOutputStream.close();

Logger.d("dataOutputStream: " + outputStreamBytes);
Logger.d("Response Code: " + httpURLConnection.getResponseCode());
Logger.d("httpURLConnection.getHeaderFields(): " + httpURLConnection.getHeaderFields().toString());
Logger.d("httpURLConnection: " + httpURLConnection.toString());

// WAS THROWING ERRORS
if (httpURLConnection.getResponseCode() == 500) {
return "500";
} else {
InputStream inputStream = new BufferedInputStream(httpURLConnection.getInputStream());
response = StreamReader.readStream(inputStream);
httpURLConnection.disconnect();
}

Logger.d("Result: " + response);

} catch (MalformedInputException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
Log.d("mGetResponseFromNetworkRequest", "Connection Time = " + (System.currentTimeMillis() - startTime));
return response;
}


Подробнее здесь: https://stackoverflow.com/questions/551 ... ary-usuall
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»