java.net.SocketException: сброс соединения только в Android 9 - PullRequest
0 голосов
/ 08 мая 2019

Я получаю java.net.SocketException: Connection reset при попытке отправить запрос GET.Проблема в том, что тот же код, который я использую, прекрасно работает в Android 8 и ниже, но не работает в Android 9. Кроме того, эта проблема возникает только при некоторых запросах в моем приложении, но не у всех.Эта библиотека используется для HTTP-запросов: https://github.com/kevinsawicki/http-request

Я уже добавил android:usesCleartextTraffic="true" в манифест, но это не помогает.

Вот код, который я использую для отправки запроса:

    String response = "";

    args.put("InvokationTarget", methodName);
    args.put("DepartmentId", String.valueOf(departmentId));

    try {
        if (mWebServiceUrl != null) {
            HttpRequest request = HttpRequest.get(mWebServiceUrl, args, true);

            Log.i(TAG, "Request: " + request.toString());
            long ts = System.currentTimeMillis();

            if (request.ok()) {
                response = request.body(HttpRequest.CHARSET_UTF8);

                long delta = System.currentTimeMillis() - ts;
                Log.i(TAG, "Response: " + response);
                Log.i(TAG, "Duration: " + (delta / 1000.0) + " sec.");
            }
        }
    } catch (Exception e) {
        Log.e(TAG, "Error: " + e.getMessage(), e);
        ACRA.getErrorReporter().handleException(e);
        response = e.getMessage();
    }

1 Ответ

1 голос
/ 08 мая 2019

Вам необходимо добавить networkSecurityConfig .

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config"
                    ... >
        ...
    </application>
</manifest>

network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config>
        <domain includeSubdomains="true">example.com</domain>
        <trust-anchors>
            <certificates src="@raw/my_ca"/>
        </trust-anchors>
    </domain-config>
</network-security-config>
...