goe*_*goe 6 perl post multipartform-data httprequest
我试图从Perl中的一个子例程向基于Java的控制器发送请求.但我没有得到任何回应.我知道Java代码工作文件,因为如果我从HTML表单发布它,我可以得到响应.
这是我的Perl代码:
use HTTP::Request::Common;
my $ua = LWP::UserAgent->new;
my $response = $ua->request(POST 'http://testserver/testing.nc',
Content_Type => 'form-data',
Content => [
method => 'submit',
ftp_server => 'ftp.localhost',
ftp_user => 'testuser',
ftp_password => 'testpass',
remote_path => '/home/files',
port => 22,
file_to_upload => ["$file"]
]);
Run Code Online (Sandbox Code Playgroud)
这段代码有问题吗?
发布的数据必须是类型multipart/form-data
.
编辑:好的,事实证明,form-data
如HTTP :: Request :: Common文档中所述,指定就足够了:
POST方法还支持
multipart/form-data
RFC 1867中指定的基于表单的文件上载所使用的内容.您可以通过将内容类型指定form-data
为请求标头之一来触发此内容格式.
但是,要使用HTTP::Request::Common::POST
您使用的方式,您需要导入POST
:
use HTTP::Request::Common qw(POST);
Run Code Online (Sandbox Code Playgroud)
或使用$ua->post
:
LWP :: UserAgent的
post(...)
方法作为快捷方式存在.$ua->request(POST ...)
使用WWW :: Mechanize可以让您的生活更轻松.另请参阅此上传示例.