Странное чтение из STDIN
От Gennadij Pastuhov (2:5036/26) к All
В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)
Рад всех приветствовать! А особенно - All!
Есть модуль для работы с вебом, чтение из потока там реализовано так:
elsif ($ENV{'CONTENT_TYPE'} =~ m|^\s*application/json|i) {
read(STDIN, my $form_data, $ENV{CONTENT_LENGTH})
or die "$!\n";
print STDERR "\n" . PACKAGE . LINE . " form_data " . Dumper $form_data;
my $requestData = from_json $form_data;
}
Для проверки хожу в этот модуль курлом и вот что вижу в логах:
$ curl '172.25.0.5:8080/preset-add' -H 'Content-Type: application/json' --data '{"name":"пресет1","name_en":"preset1"}'
FM::Common::WebIn155 form_data $VAR1 = "{\"name\":\"\x{43f}\x{440}\x{435}\x{441}\x{435}\x{442}1\",\"name_en\":\"preset1\"}";
$ curl '172.25.0.5:8080/preset-add' -H 'Content-Type: application/json' --data '{"name":"пресет2","name_en":"preset2"}'
FM::Common::WebIn155 form_data $VAR1 = "{\"name\":\"\x{43f}\x{440}\x{435}\x{441}\x{435}\x{442}2\",\"name_en\":\"preset2\"}";
$ curl '172.25.0.5:8080/preset-add' -H 'Content-Type: application/json' --data '{"name":"пресет3","name_en":"preset3"}'
FM::Common::WebIn155 form_data $VAR1 = "{\"name\":\"\x{43f}\x{440}\x{435}\x{441}\x{435}\x{442}3\",\"name_en\":\"preset3\"}";
$ curl '172.25.0.5:8080/preset-add' -H 'Content-Type: application/json' --data '{"name":"пресет4","name_en":"preset4"}'
FM::Common::WebIn155 form_data $VAR1 = "{\"name\":\"\x{43f}\x{440}\x{435}\x{441}\x{435}\x{442}4\",\"name_en\":\"preset4\"}";
А потом вдруг всё ломается и переходит на чтение побайтово:
$ curl '172.25.0.5:8080/preset-add' -H 'Content-Type: application/json' --data '{"name":"пресет5","name_en":"preset5"}'
FM::Common::WebIn155 form_data $VAR1 = '{"name":"??N?чN?чN5","name_en":"preset5"}';
И последующие запросы идут только в таком формате. Что это может быть?
... Jonny wanna live
--- GoldED+/W32 1.1.5-041013 xenofont.chat.ru skype pastuhovgena
* Origin: Топ - топ - топ - топ. Чёрные лапки!!!! (2:5036/26)
Ответы на это письмо:
From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку
From: Username
Или коротким