首页 > 解决方案 > 将 json 数据和文件发布到 Ruby on Rails API

问题描述

我对 ruby​​ on rails 很陌生,所以我很可能错过了一些简单的东西,但我一生都无法弄清楚这一点。

我已经用 ruby​​ on rails 创建了一个 API 服务器,但我似乎无法将 JSON 与图片一起发布。我一直在服务器端收到错误,抱怨编码错误。

ActionController::BadRequest (Invalid request parameters: invalid %-encoding 
.rbenv/versions/3.0.1/lib/ruby/3.0.0/uri/common.rb:324:in decode_www_form_component'

我正在使用 Postman 提出请求。我正在使用该form-data选项在我的 JSON 中包含一个文本条目,在我的 PNG 中包含一个文件条目。标头 Content-Type 是多部分/混合的。并且各个键/值对分别是application/jsonimage/png。我不知道这是邮递员问题还是红宝石控制器问题。或错误。

邮递员请求图片

后定义

必填字段

任何见解或进一步的问题都会对我有所帮助。

编辑:这是来自邮递员内部的帖子请求的代码。

curl --location --request POST 'http://localhost:3000/api/v1/events/1/eventphotos/' \
--header 'Content-Type: multipart/mixed' \
--form 'data={
    "eventphoto":{
        "event_id":1,
        "photopath":"nothing to see here"
    }
}' \
--form 'picture=@/Users/chancefinley/Downloads/mushroom.png'

标签: ruby-on-railspostman

解决方案


问题最终是我需要一个包含表单的视图。你知道,这样formdata请求就有了实际提交的东西……愚蠢的错误。吸取了我的教训


推荐阅读