邮寄请求发送至:
http://www.example.com/example/
帖子数据如下:
------WebKitFormBoundaryB8NNdk2kNdndnnn
Content-Disposition: form-data; name="picture[uploaded_data]"; filename="picture.jpg"
Content-Type: image/jpeg
binarydatagoeshere
------WebKitFormBoundaryB8NNdk2kNdndnnn--
所以我的问题是,我如何使用curl 对 picture.jpg 的二进制数据执行完全相同的操作?我知道 --data-binary @myfile.bin,但这完全不同,在这种情况下,边界之后的字符串(例如B8NNdk2kNdndnnn
在这种情况下)需要有效才能使请求通过。那么我该如何使用curl 来完成这一切呢?
答案1
我认为该--form
选项应该满足您的需要:
curl --form "picture[uploaded_data][email protected];type=image/jpeg" http://www.example.com/example/
答案2
这是一个示例脚本珀尔发布多部分。你需要稍微调整一下:
#!/usr/bin/env perl
use strict; use warnings;
use WWW::Mechanize;
my $m = WWW::Mechanize->new(
autocheck => 1,
agent_alias => 'Mozilla',
cookie_jar => {},
ssl_opts => {verify_hostname => 0},
quiet => 0,
);
$m->get("http://domain.tld");
$m->post('https://domain.tld/send',
Content_Type => "form-data",
Content => [
'picture[uploaded_data]' => 'foobar',
file => [ '/path/to/image', 'image_name', 'Content-Type' => 'image/jpeg' ]
]
);
print $m->content;
查看http://search.cpan.org/~gaas/HTTP-Message-6.06/lib/HTTP/Request/Common.pm