Postman里怎么正确发送GraphQL请求? UX俊荣 提问于 2026-02-27 12:24:20 阅读 85 工具 我最近在用Postman测试我们后端的GraphQL接口,但一直返回400错误。我查了文档说要设置Content-Type为application/json,body里放query字段,但还是不行。是不是格式写错了? 我试过这样发: { "query": "{ user(id: "123") { name email } }" } 但后端说解析失败,难道GraphQL的query不能这么写?还是Postman有特殊的设置方式? 我来解答 赞 5 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 庆玲🍀 Lv1 啊,GraphQL在Postman里确实容易踩坑。我前几天刚被这个问题折磨过,分享一下我的踩坑经验。 你的格式基本是对的,但有两个常见问题需要注意: 第一,GraphQL的query字符串里如果有双引号,需要转义或者改用单引号。你现在的写法会导致JSON解析错误。建议改成这样: { "query": "{ user(id: "123") { name email } }" } 或者更推荐用单引号(GraphQL支持单引号): { "query": "{ user(id: '123') { name email } }" } 第二,Postman有几个关键设置必须做对: 1. 请求方法必须是POST(虽然GraphQL规范说GET也可以,但很多后端只支持POST) 2. Headers里要加: Content-Type: application/json 3. 在Body选项卡选择"raw",然后选JSON格式 另外有个小技巧,GraphQL的query可以格式化得好看点,像这样: { "query": "query GetUser { user(id: "123") { name email } }" } 这样写有几个好处: - 可读性更好 - 可以给查询命名(GetUser) - 方便后面加变量参数 如果还是不行,可以试试在query前面加个"operationName"字段: { "operationName": "GetUser", "query": "query GetUser { user(id: "123") { name email } }" } 有时候后端会根据operationName做不同的处理。 最后说个坑,如果你要传变量,格式是这样的: { "query": "query GetUser($userId: ID!) { user(id: $userId) { name email } }", "variables": { "userId": "123" } } 400错误大部分时候就是JSON格式不对或者query语法有问题,建议先用在线JSON校验工具检查下你的请求体。 回复 点赞 2026-03-09 05:05 司马静薇 Lv1 你把query里的双引号转义了没?Postman里body选raw + JSON,这么写就行了: { "query": "{ user(id: "123") { name email } }" } 或者干脆用变量避免转义麻烦: { "query": "{ user(id: "123") { name email } }", "variables": {} } 回复 点赞 2 2026-02-27 13:00 加载更多 相关推荐 2 回答 63 浏览 Postman发送JSON请求包含CSS样式字符串时返回400错误怎么办? 我在Postman里测试API时,发送POST请求的JSON数据里有一个字段需要包含CSS样式字符串,比如: body { background-color: #f0f0f0; font-family... 闲人俊蓓 前端 2026-02-14 20:28:06 2 回答 70 浏览 Postman发送JSON请求时,Body数据总是被转义怎么办? 在Postman测试接口时,我需要发送JSON格式的请求体,但发现Body里的双引号被自动转义成"了。比如输入{"name": "测试"},发送后服务器收到的是"name": "测试",导致接口报错。... 程序员兴瑞 工具 2026-02-10 09:12:33 1 回答 67 浏览 Postman中怎么手动设置Cookie才能让请求带上正确的会话信息? 我用Postman测试一个需要登录态的接口,后端返回了Set-Cookie头,但后续请求好像没自动带上Cookie。我在Cookies管理器里看到域名是localhost,但实际请求发到的是127.0... 峻豪 Dev 工具 2026-03-27 01:53:20 2 回答 76 浏览 Postman 中如何正确发送带 Cookies 的请求? 我在用 Postman 调试一个需要登录态的接口,后端返回了 Set-Cookie,但后续请求好像没自动带上 Cookie。我手动在 Headers 里加了 Cookie 字段也不行,是不是哪里配置错... 书生シ静静 工具 2026-03-02 19:49:26 2 回答 81 浏览 Postman发送POST请求时,body里的JSON数据没传到后端怎么办? 在用Postman测试用户注册接口时,发现后端总是收到空对象... 我设置了请求体为raw JSON格式,参数写了 { "username": "test", "email": "test@examp... 设计师素红 前端 2026-02-07 09:06:22 1 回答 59 浏览 Postman发送请求后端收不到Vue传的参数? 我在用 Vue 写登录功能,前端用 axios 发 POST 请求,但后端用 Postman 测试时能收到参数,我本地开发却收不到,到底是哪儿出问题了? 我试过把 Content-Type 改成 ap... 西门桂霞 前端 2026-03-26 11:19:22 2 回答 50 浏览 Postman里怎么用变量动态替换请求URL中的参数? 我在Postman里设置了一个环境变量userId,值是123,想在GET请求的URL里用它,比如https://api.example.com/users/{{userId}}。但每次发请求都报40... 开发者羽沫 工具 2026-03-10 17:45:17 1 回答 49 浏览 Postman变量怎么在请求体里用? 我在Postman里设置了环境变量token,但在请求体里引用的时候总是报错。 比如我这样写:{{token}},结果发出去的请求里还是原样字符串,没替换成实际值。是不是只能在Headers里用变量?... 开发者樱潼 工具 2026-03-08 19:30:21 2 回答 56 浏览 Postman 发送 POST 请求时 HTML 表单数据怎么传? 我在用 Postman 测试一个登录接口,后端是接收 HTML 表单格式的 POST 数据(Content-Type: application/x-www-form-urlencoded),但我试了好... ლ玉英 前端 2026-03-04 03:19:28 2 回答 41 浏览 Postman Collection Runner 里怎么获取上一个请求的响应数据? 我在用 Postman 的 Collection Runner 跑一组接口,第二个请求需要带上第一个请求返回的 token,但不知道怎么在 Runner 里把前一个响应的数据传给下一个请求。 我试过在... ლ素平 工具 2026-02-26 23:03:18
你的格式基本是对的,但有两个常见问题需要注意:
第一,GraphQL的query字符串里如果有双引号,需要转义或者改用单引号。你现在的写法会导致JSON解析错误。建议改成这样:
或者更推荐用单引号(GraphQL支持单引号):
第二,Postman有几个关键设置必须做对:
1. 请求方法必须是POST(虽然GraphQL规范说GET也可以,但很多后端只支持POST)
2. Headers里要加:
Content-Type: application/json
3. 在Body选项卡选择"raw",然后选JSON格式
另外有个小技巧,GraphQL的query可以格式化得好看点,像这样:
这样写有几个好处:
- 可读性更好
- 可以给查询命名(GetUser)
- 方便后面加变量参数
如果还是不行,可以试试在query前面加个"operationName"字段:
有时候后端会根据operationName做不同的处理。
最后说个坑,如果你要传变量,格式是这样的:
400错误大部分时候就是JSON格式不对或者query语法有问题,建议先用在线JSON校验工具检查下你的请求体。
或者干脆用变量避免转义麻烦: