#ruby #form-data #rest-client #ruby-hash
Вопрос:
У меня есть конечная точка API, которая требует, чтобы данные отправлялись ей в виде данных формы. Я использую RestClient для отправки данных. Проблема в том, что мне не удается предоставить данные для запроса таким образом, чтобы конечная точка могла их прочитать. Это то, что я пробовал:
RestClient::Request.execute( method: :post, url: url, payload: { multipart: true, data: { "user": "test", "phase": "test", "job_id": "test" } }, headers: { Authorization: 'Basic ' Base64.encode64(auth_details), content_type: "multipart/form-data"} )
Любые советы, как я мог бы добавить хэш-данные для запроса таким образом, чтобы конечная точка могла прочитать его как форму?
ПРАВКА1:
Конечная точка действительно получает запрос. Конечная точка записывается с помощью Flask и пытается прочитать параметры формы с помощью flask.request следующим образом:
request.form.get("user")
Комментарии:
1. Таким образом, запрос действительно достигает конечной точки? Вам нужно опубликовать параметры, которые фактически получает конечная точка, это, скорее всего, будет связано со структурой различий в хэшах с тем, что ожидается к конечной точке
2. Кроме того, вам нужна опция multipart true, поскольку вы на самом деле не отправляете никаких ресурсов?
3. Можете ли вы опубликовать параметры, которые фактически получены к конечной точке, пожалуйста
4. Спасибо за помощь, удалось ее решить!
5. Хорошо, вы должны опубликовать свое решение в качестве ответа
Ответ №1:
Мне удалось заставить запрос работать, изменив повторный запрос на следующий:
RestClient::Request.execute( method: :post, url: url, payload: { "user": "test", "phase": "test", "job_id": "test" }, headers: { Authorization: 'Basic ' Base64.encode64(auth_details), content_type: "multipart/form-data"} )