【问题标题】:How I can send a large encoded base64 string to rails server API如何将大型编码 base64 字符串发送到 Rails 服务器 API
【发布时间】:2018-01-12 17:58:19
【问题描述】:

我正在尝试将大型 base64 编码字符串从客户端发送到服务器 rails API,然后在服务器端对其进行解码并将文件上传到 S3 或任何其他服务。当我尝试发送大型编码 base64 字符串时,我遇到了以下错误:

2018-01-12 14:39:51 +0530: HTTP parse error, malformed request (): #<Puma::HttpParserError: HTTP element QUERY_STRING is longer than the (1024 * 10) allowed length (was 53799)>
---

因为 base 64 编码的字符串非常大。我附上截图请看

我正在使用 rails 5.2 beta 和 puma 服务器。如果我需要分享更多信息或更正任何内容,请告诉我

【问题讨论】:

  • 请任何人给出答案,考虑到我想从浏览器而不是任何其他客户端发送请求。我该怎么做?

标签: ruby-on-rails ruby base64 ruby-on-rails-5 puma


【解决方案1】:

如您所见:What is the maximum possible length of a query string?

某些客户端可能暗示对查询字符串的限制。

您需要做的是在请求正文中接受此字符串。由于您使用 Postman,您可以执行以下操作:

post with body

默认情况下,Rails 将解析这些值以获得值,并且它将在 @params 哈希上可用。

【讨论】:

    【解决方案2】:

    您正在尝试将大对象作为查询参数发布,这不是参数的预期用途。

    您需要将其发布为 multipart/form-data。

    有关如何使用rest-client gem 执行此操作的示例,请参阅this Stackoverflow 问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-19
      • 2018-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多