MIME :: Parser не может правильно разобрать составные / смешанные части - PullRequest
0 голосов
/ 05 сентября 2011

У меня есть сервер, отправляющий мне этот ответ.Однако, используя следующий код, я получаю объект, не содержащий частей и всего, что находится между границами (включительно), как MIME :: Body.Есть ли что-то, что я могу сделать, кроме реализации моего собственного многочастного парсера (в общем случае может быть больше частей) и списания модулей, которые должны делать это для меня?

#!/usr/bin/perl

use MIME::Parser;

my $response = <<_EOF;
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: multipart/mixed; boundary="be4dc417ebd640944ab26f033e5ea1ab"

--be4dc417ebd640944ab26f033e5ea1ab
Content-Type: application/json

{"a":"b"}
--be4dc417ebd640944ab26f033e5ea1ab--
_EOF

my $mime_parser = new MIME::Parser;
$mime_parser->tmp_to_core(1);
$mime_parser->output_to_core(1);
my $entity = $mime_parser->parse_data($response);

print "$MIME::Parser::VERSION $^V $^O\n\n";
$entity->print(\*STDOUT);
print "\n\n";
print $entity->parts(0)->bodyhandle->as_string;

Вывод:

5.502 v5.10.1 MSWin32


--be4dc417ebd640944ab26f033e5ea1ab
Content-Type: application/json

{"a":"b"}
--be4dc417ebd640944ab26f033e5ea1ab--


Can't call method "bodyhandle" on an undefined value at test.pl line 25.

1 Ответ

1 голос
/ 06 сентября 2011

Строка HTTP/1.1 200 OK не является частью ответа MIME. Выньте его, и он отлично работает.

...