Elixir HttpPoison не работает для отправки запросов multipart / form-data - PullRequest
1 голос
/ 05 марта 2020

У меня очень простой запрос, но похоже, что HttpPoison не может решить эту проблему.

В запросе есть вложения, поэтому я использую контент multipart/form-data введите.

Когда я отправляю только файл, запрос работает нормально, но мне нужно добавить некоторые другие реквизиты в мой запрос, и вот где возникает проблема.

Мой запрос:

HTTPoison.post(
  "path.com/api/anything",
  {:multipart, [
    {
      :file,
      "/path/file.xlsx",
      {"form-data", [name: "file", filename: "file.xlsx"]}, []
    },
    {"taskName", "#{task.name}"},
    {"taskLink", "#{task.link}"}
  ]},
)

Я получаю файл без проблем, но taskName и taskLink никогда не доходят до сервера.

( Я пробовал с почтальоном, и у меня не было проблем )


Некоторые проблемы, связанные с этим:

https://elixirforum.com/t/httpoison-post-multipart-with-more-form-than-the-file/4222/4 https://github.com/edgurgel/httpoison/issues/237

1 Ответ

0 голосов
/ 05 марта 2020

У нас есть рабочий пример списка из нескольких частей, который мы используем для отправки zip-файлов вместе с другими атрибутами. Что-то эквивалентное этому может работать для вас.

[
  {"id", to_string(order_id)},
  {"file_size", to_string(file_size)},
  {"attachment", file, {"form-data", [name: "file", filename: filename]},
    [{"Content-Type", "application/zip"}]
  }
]
...