Perl中使用REST :: Client的multipart / form-data

时间:2015-04-16 22:56:56

标签: perl rest http multipartform-data

如何使用REST :: Client向REST API发送'multipart / form-data'请求?有问题的API是herethis特殊请求是有问题的。对于其他发布请求,我可以使用

简单地将数据作为JSON发送
my $params = { api_key => $key, match_attachments => { url => "http://example.com" } };
$client->POST("/tournaments/$tid/matches/$mid/attachments.json", to_json($params), { "Content-Type" => "application/json" });

但是,由于这可能需要一个文件,看来我必须使用'multipart / form-data'作为Content-Type。我尝试了很多东西,例如使用REST :: Client :: buildQuery(它不会选择'match_attachments')发送数据作为JSON(它没有获取api_key),并发送散列和arrayrefs,这两个模块都抱怨它需要一个标量引用。如何正确格式化数据以使其通过?与文件作为明文网址是一样的过程吗?

1 个答案:

答案 0 :(得分:0)

似乎REST :: Client不支持API可能需要的RFC2388(multipart / formdata)中的内容。

将有两个不同的内容块 - 参数JSON和图像的编码二进制数据。

'curl'命令可以使用-F选项执行此操作,因此您可能需要先尝试此操作。

有点晚但可能会将此作为功能请求提交: https://github.com/milescrawford/cpan-rest-client/