如何使用REST :: Client向REST API发送'multipart / form-data'请求?有问题的API是here,this特殊请求是有问题的。对于其他发布请求,我可以使用
简单地将数据作为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,这两个模块都抱怨它需要一个标量引用。如何正确格式化数据以使其通过?与文件作为明文网址是一样的过程吗?
答案 0 :(得分:0)
似乎REST :: Client不支持API可能需要的RFC2388(multipart / formdata)中的内容。
将有两个不同的内容块 - 参数JSON和图像的编码二进制数据。
'curl'命令可以使用-F选项执行此操作,因此您可能需要先尝试此操作。
有点晚但可能会将此作为功能请求提交: https://github.com/milescrawford/cpan-rest-client/