PerlHTTP::带有文件上载的请求忽略头
我正试图通过HTTP::Request在Perl中使用“表单数据”的内容类型上传一个文件 代码如下所示:PerlHTTP::带有文件上载的请求忽略头,perl,http-headers,httprequest,Perl,Http Headers,Httprequest,我正试图通过HTTP::Request在Perl中使用“表单数据”的内容类型上传一个文件 代码如下所示: $request = POST $URL, $headers, Content_Type => 'form-data', Content => [ 'filename' => $args->{ formData }->{ filen
$request = POST $URL,
$headers,
Content_Type => 'form-data',
Content => [
'filename' => $args->{ formData }->{ filename },
'options' => $args->{ formData }->{ options }
];
$headers是通过以下方式构建的:
my $headers = HTTP::Headers->new();
while ( my ( $name, $value ) = each %{ $args->{ headers } } ) {
$headers->header( $name, $value );
}
当调用其他不能通过此调用上载文件的东西时,此功能可以正常工作:
$request = HTTP::Request->new( 'POST', $uri, $headers );
当我查看文件上传调用的输出时,它没有任何头信息,除了:
Content-Length: 918
Content-Type: multipart/form-data; boundary=xYzZY
但是,还有另一个值集应该在其中
如果删除“$headers”,则输出相同。我也尝试过使用
HEADERS => $headers,
但这只会生成一个标头,其键为HEADERS,值为HASH(0x……。)
我还尝试添加
X-key-name => $value,
但这是一个错误。用引号括住键不会将其添加到标题中
在过去的几个小时里,我一直在徒劳地寻找一个包含文件上传和标题的帖子的例子
我的想法快用完了。请注意
HTTP::Request::Common::POST(...)
不一样
HTTP::Request->new(POST => ...)
但是,论点不同
根据
没有记录在案的方法将HTTP::Headers对象用作第二个参数
POST $url
POST $url, Header => Value,...
POST $url, $form_ref, Header => Value,...
POST $url, Header => Value,..., Content => $form_ref
POST $url, Header => Value,..., Content => $content