Страница 1 из 1

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

Добавлено: 21 дек 2017, 11:27
_ILYA_

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

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 одинаково работает на всех платформах.

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

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

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