Java, HttpURLConnection и настройка длины содержимого

Я устанавливаю длину содержимого в моем HttpURLConnection для PUT.

urlConnection.setRequestProperty("Content-Length", "" + responseJSONArray.toString(2).getBytes("UTF8").length);

Фактическое количество байтов - 74. Однако, когда я запрашиваю длину содержимого urlConnection, я возвращаюсь -1. Почему это? И почему длины не равны (учитывая, что я установил это)?

Я должен установить длину содержимого, потому что получаю от сервера ответ 411.

(Кроме того, в примерах

Ответ 1

Вы не должны устанавливать этот заголовок самостоятельно. Используйте setFixedLengthStreamingMode() или setChunkedTransferMode().

Ответ 2

Также не забудьте добавить setDoOutput, чтобы сообщить ваше соединение, которое вы собираетесь отправлять.