HTTP POST multipart с именованным файлом

Мне нужно отправить (multipart) HTTP-запрос, который содержит файл с именем. Кажется, что это труднее достичь, чем я себе представлял... Я пытался найти способ сделать это с помощью HTTPoison, но я не могу заставить его использовать имя, отличное от "file". Я пытался использовать Hackney напрямую, но, похоже, выбора нет, и определенно нет ни одного из этих тестов, который бы демонстрировал эту функциональность. Я также взглянул на ibrowse и HTTPotion, но не могу найти ничего полезного (мой Эрланг очень ограничен, заметьте). Вот пример того, что я хочу сделать с библиотекой Ruby Curb (обратите внимание, что Curl::PostField.file принимает имя и путь к файлу).

Это такая странная вещь? Или я что-то упускаю здесь очевидное... Любое предложение очень ценится.

Спасибо!

2 ответа

Решение

Если кто-то в будущем столкнется с этой проблемой, вот решение:

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

Обратите внимание на лишние кавычки.

Мне удалось заставить его работать с

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

с некоторой помощью из этого вопроса Github

Другие вопросы по тегам