Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PerlHTTP::带有文件上载的请求忽略头_Perl_Http Headers_Httprequest - Fatal编程技术网

PerlHTTP::带有文件上载的请求忽略头

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

我正试图通过HTTP::Request在Perl中使用“表单数据”的内容类型上传一个文件

代码如下所示:

$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