Установка свойств после установления соединения (java.lang.IllegalStateException) - HttpURLConnection - PullRequest
0 голосов
/ 07 декабря 2018

При следующем выборе кода выполняется вызов API.Проблема здесь заключается в том, что если я удаляю строки, связанные с загрузкой Cookies, я не получаю исключение (java.lang.IllegalStateException «Невозможно установить свойство запроса после установления соединения»).Когда я включаю этот бит кода, возникает исключение.

Мой первый вопрос - для понимания: почему это происходит с битом с загрузкой куки, но не без него?

Мой второй вопрос - найти решение: как мне обойти это?

con = (HttpURLConnection) new URL(url).openConnection();
Map<String, List<String>> headerFields = con.getHeaderFields();
List<String> cookiesHeader = headerFields.get(COOKIES_HEADER);
if (cookiesHeader != null) {
    for (String cookie : cookiesHeader)
    {
        msCookieManager.getCookieStore().add(null, HttpCookie.parse(cookie).get(0));
    }
}

if (msCookieManager.getCookieStore().getCookies().size() > 0) {
    con.setRequestProperty("Cookie",
            TextUtils.join(";", msCookieManager.getCookieStore().getCookies()));
}
con.setRequestMethod("POST");
...