【问题标题】:Error ocurred while parsing request parameters (Parse error 783)解析请求参数时出错(解析错误 783)
【发布时间】:2021-04-15 01:13:53
【问题描述】:

我正在构建一个 api,我的 POST(创建)路径是 /api/v1/studios

控制器

def create
  @studio = Studio.new(studio_params)

  if @studio.save
    render json: @studio, status: :created, location: @studio
  else
    render json: @studio.errors, status: :unprocessable_entity
  end
end

private
 def studio_params
     params.permit(:name)
 end

当我尝试通过 curl 创建实例时 ->

curl -X POST -v http://localhost:3000/api/v1/studios -H "Content-Type: application/json" -d '{"name":"studio1"}'

我得到的只是我在标题上写的这个错误。

Parsing error, could not resolve host: studio1}'

在 development.log 中我得到:

ActionDispatch::Http::Parameters::ParseError(783: ''{name:Disney}'' 处的意外令牌):

解析请求参数时出错。 内容:

'{name:迪士尼}'

【问题讨论】:

  • 您能否将错误显示在您的development.log 中?
  • 我不确定curl 命令是如何产生该错误的。如果你的 shell 不完全不可靠,这是不可能的。
  • 我在 development.log 上添加了(我认为)相关的错误信息。另外,也许我的外壳很不稳定?我正在使用 postgres 作为数据库
  • 数据库无关。你在哪里运行curl 命令?你也可以只关注这个命令和这个命令吗?您不断发布与相关命令不匹配的数据。
  • 我真的不明白它是如何运作的,但你是在赚钱......不知何故。我没有使用我的 Git CMD,而是通过 VS Code 使用了 Git bash,而是在 bash 中复制/粘贴了 curl 命令,但出现了错误。我又写了一遍,而不是复制/粘贴,它奏效了。我现在可以使用 curl 命令添加记录。感谢您的帮助,现在可以使用了。不过,正如您刚刚在此处评论的那样,我无法真正将您的答案设置为已接受。如果你在下面回答,我会做的。

标签: ruby-on-rails ruby curl parse-error


【解决方案1】:

如果您正在运行该 curl 命令,那么您的 shell 处理各种引号的方式可能存在问题。那是 bash 格式,所以如果你的 shell 不遵守那个标准,你会得到莫名其妙的语法错误。

【讨论】:

    猜你喜欢
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 2018-07-26
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多