我正在使用现有的框架来自动化一些api。 该框架使用HTTP :: Request模块。我需要编写一个脚本来上传文件。 我可以使用HTTP :: Request :: Common模块,但 NOT 使用Http :: Request模块。 但我只需要使用Http :: Request来完成这项工作。 在代码片段下面:
使用HTTP :: Request :: Common \ This Works
$request = POST $uri,
Content_Type => 'multipart/form-data',
Content => [
file => [$file]
]
;
my $results=$ua->request($request ) ;
使用HTTP :: Request \这不起作用,我收到错误文件
my $req = HTTP::Request->new("POST", $uri );
$req->header(Content_Type => "form-data");
$req->content('file=>$file');
my $res = $ua->request($req);
有人可以告诉我上面代码中我做错了什么吗?
答案 0 :(得分:6)
不幸的是,POST
方法中除了包装HTTP::Request
对象的构造函数之外还有很多其他内容(请参阅here)。至少包括以下内容(通过快速扫描代码):
multipart/form-data
将Content-Type标头修改为boundary
,以指示文件数据在请求中的开始位置我强烈建议不要手动执行上述所有操作,但很难知道您的确切限制以及无法使用HTTP::Request::Common
的原因。