Рад всех приветствовать! А особенно - 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