我需要发送一个(多部分)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采用名称和文件路径)。
这是一件奇怪的事吗?或者我错过了一些明显的东西......非常感谢任何建议。谢谢!
答案 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}]})
的帮助下