【问题标题】:How to send form-data with RestClient, if data received from a hash?如果从散列接收到数据,如何使用 RestClient 发送表单数据?
【发布时间】:2021-12-07 00:06:44
【问题描述】:

我有一个 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")

【问题讨论】:

  • 那么请求实际上到达了终点?您需要发布端点实际接收的参数,这很可能与哈希结构与端点预期的差异有关
  • 还需要一个 multipart true 选项,因为您实际上并没有发送任何资源?
  • 能否把端点实际收到的参数贴出来
  • 感谢帮助,已经解决了!
  • 很好,您应该发布您的解决方案作为答案

标签: ruby form-data rest-client ruby-hash


【解决方案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"}
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多