MIME :: Parser无法正确解析多部分/混合部分

时间:2011-09-05 15:49:26

标签: perl mime

我有一台服务器向我发送此回复。但是,使用以下代码,我最终得到一个实体,其中不包含任何部分以及边界之间的所有内容(包括)作为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 个答案:

答案 0 :(得分:1)

HTTP/1.1 200 OK行不是MIME响应的一部分。拿出来,它工作正常。