Как отправить данные формы с помощью RestClient, если данные получены из хэша?

#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"} )