postman Graphql post body“必须提供查询字符串”,

7cwmlq89  于 2022-11-23  发布在  Postman
关注(0)|答案(8)|浏览(259)

我使用Express-graphql中间件。我在正文行中发送以下请求:

POST /graphql HTTP/1.1
Host: local:8083
Content-Type: application/graphql
Cache-Control: no-cache
Postman-Token: d71a7ea9-5502-d5fe-2e36-0ae49c635a29

{
   testing {
      pass(id: 1) {
        idn
      }
    }
}

且出错了

{
  "errors": [
    {
      "message": "Must provide query string."
    }
  ]
}

在graphql中,我可以用URL发送更新。
URL字符串太短。我必须发送更新模型,如

mutation {
  update(id: 2, x1: "zazaza", x2: "zazaza", x3: "zazaza" ...(more more fields)...) {
    idn
  }
}

我想它一定在请求正文中。我怎么能发送“更新”查询或我做错了?

vaj7vani

vaj7vani1#

发布请求需要管理标头信息。
1.使用Http客户端-Content-Typeapplication/json
1.使用Postman客户端-Content-Typeapplication/graphql
但请求正文看起来像字符串

{"query":"mutation{update(id:1,x1:\"zazaz\",x2:\"zazaz\"......){id x1 x2}}"}
wlsrxk51

wlsrxk512#

如果您正在使用graphql,并且希望使用postman或任何其他Rest客户端对其进行测试,请执行以下操作。
在postman中,选择POST方法并输入URL,将Content-Type设置为application/graphql,然后在正文中传递查询。
示例:

http://localhost:8080/graphql
Mehtod: POST
Content-Type: application/graphql
Body: 
  query{
    FindAllGames{
    _id
    title
    company
    price
    year
    url
   }
 }

就是这样,你会得到回应的。

kx5bkwkv

kx5bkwkv3#

使用Postman版本7.2.2我也遇到过类似的问题。这个版本的Postman支持Graphql。将内容类型改为application/json为我解决了这个问题。

6pp0gazn

6pp0gazn4#

对我来说工作如下:
体内

在页眉中

不要忘记在Body设置上标记GraphQl [x]

而如何被引用之前更改为POST的动词。

eyh26e7m

eyh26e7m5#

1.进入相关网页并打开“检查”(通过书写点击-〉检查||在镶边中按Ctrl+Shift+I)
1.转到网络选项卡,复制cURL命令x1c 0d1x
1.打开postman,然后导入-〉原始文本
1.粘贴复制的命令

1.然后,继续-〉

bmp9r5qi

bmp9r5qi6#

这通常发生在您的express-graphql没有收到任何参数时。您需要在应用程序中添加一个json/applicaton解析器。

npm install body-parser

例如

const bodyParser = require('body-parser');

app.use(bodyParser.json()); // application/json
mf98qq94

mf98qq947#

将内容类型切换为JSON。如下所示

xeufq47z

xeufq47z8#

检查您在Postman请求中使用的协议是否正确。
我使用了HTTP而不是HTTPS,这导致了相同的错误。
更改content-typerawjson而不是graphql类型没有帮助。

相关问题