Ошибка при передачи кириллицы

Ответить
_ILYA_
Сообщения: 41
Зарегистрирован: 06 окт 2013, 11:49

Ошибка при передачи кириллицы

Сообщение _ILYA_ » 21 дек 2017, 11:27

Код: Выделить всё

URL url = new URL(lnk);

                HttpURLConnection connection = (HttpURLConnection)url.openConnection();
                connection.setRequestMethod("POST");
                connection.setRequestProperty( "Content-Type", "application/x-www-form-urlencoded");
                connection.setRequestProperty( "Content-Length", String.valueOf(data.length()));


                connection.setDoOutput(true);
                connection.setDoInput(true);

                OutputStream out_stream = connection.getOutputStream();

                out_stream.write(data.getBytes("UTF-8"));
В этом фрагменте кода, в последней строке data -это String который нужно передать.
С передачей латинских символов все в порядке. Но при передаче кириллицы, последняя строка выбрасывает исключение:
exceeded content-length limit of 31 bytes
Самое удивительное, что этот код в Windows, с кириллицей работает нормально. Что для меня стало большим открытием. :shock: Раньше я думал, что Java одинаково работает на всех платформах.

Подскажите, как можно исправить? И по чему на разных платформах, по разному работает? :?: :?: :?:

_ILYA_
Сообщения: 41
Зарегистрирован: 06 окт 2013, 11:49

Re: Ошибка при передачи кириллицы

Сообщение _ILYA_ » 21 дек 2017, 12:05

Решил проблему. за комментировал 6-ю строку кода
connection.setRequestProperty( "Content-Length", String.valueOf(data.length()));
Но все таки почему Java по разному работает на разных платформах???

Ответить