HTTP POST多部分与命名文件

时间:2015-11-06 00:01:37

标签: http elixir phoenix-framework

我需要发送一个(多部分)HTTP请求,其中包含一个名为的文件。这似乎比我想象的更难实现......我试图找到一种方法来使用HTTPoison,but I can't get it to use a name other than "file"。我已经尝试过直接使用Hackney but there doesn't appear to be an option,并且肯定没有对其中任何一个显示此功能的测试。我也看了一下ibrowse和HTTPotion,但找不到任何看似有用的东西(我的Erlang非常有限,请注意)。使用Ruby库Curb我想做的Here is an example(注意Curl :: PostField.file采用名称和文件路径)。

这是一件奇怪的事吗?或者我错过了一些明显的东西......非常感谢任何建议。

谢谢!

2 个答案:

答案 0 :(得分:12)

如果将来有人遇到这个问题,这就是解决方案:

HTTPoison.start
request = HTTPoison.post!(url, {:multipart, [{:file, "path/to/file", { ["form-data"], [name: "\"photo\"", filename: "\"/path/to/file\""]},[]}]}, headers, options)

请注意额外的转义报价。

答案 1 :(得分:1)

我设法让它与

一起工作
HTTPoison.post!(url, {:multipart, [{"name", "value"}, {:file, path_to_file}]})

在此Github issue

的帮助下