【问题标题】:How to send JSON body with curl to Postgrest如何将带有 curl 的 JSON 正文发送到 Postgrest
【发布时间】:2021-06-14 09:09:53
【问题描述】:

我正在尝试在我的 Postgresql 数据库中插入数据,但失败了。

所以基本上我可以通过下面的查询选择数据;

curl 10.127.18.18:3001/mytable

我可以通过此请求获取所有行。

我尝试了以下命令的几乎所有组合,但都失败了。如何使用 postgREST 插入基本数据?

mytable”表有 2 列,“user_id”和“username”;

curl POST 10.127.18.18:3001/mytable { "user_id": 3333, "username": testuser }
curl -X POST 10.127.18.18:3001/mytable HTTP/1.1 { "user_id": "3333", "username": "testuser" }

谢谢!

【问题讨论】:

  • 应该工作just like that。你遇到了什么错误?
  • 你是否在 shell 中将 http 正文转义为字符串文字?
  • 是的,我尝试不使用 HTTP 正文,但仍然相同“curl -X POST 10.127.17.72:3000/test1 {“user_id”:“3333”,“username”:“testuser”}”。错误是: curl:(3)URL 位置 1 中不匹配的大括号:{ ^ curl:(3)URL 位置 1 中不匹配的右大括号/方括号:} ^
  • 这根本不是 postgres(t) 错误,而是 curl 使用错误。你用的是什么外壳?
  • cygwin 在 Windows 上。即使我在 Ubuntu 上尝试,我也会遇到类似的错误。 {"message":"$ 中的错误:输入不足"}curl:(3) [globbing] 位置 2 处的大括号不匹配 curl:(6) 无法解析主机:user_id;未知错误 curl:(6)无法解析主机:3333,;未知错误 curl: (6) 无法解析主机:用户名;未知错误 curl: (6) 无法解析主机:testuser;未知错误

标签: bash curl cygwin postgrest


【解决方案1】:

对于那些遇到同样问题的人,这个查询对我有用;

curl --location --request POST '10.127.18.18:3001/mytable' --header 'Content-Type: application/json' --data-raw '{  "user_id": "11", "username": "test"  }'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 2015-07-25
    相关资源
    最近更新 更多