如何使用 Advanced REST Client 或 Postman 测试 Express/node REST API 后端?
Posted
技术标签:
【中文标题】如何使用 Advanced REST Client 或 Postman 测试 Express/node REST API 后端?【英文标题】:How to test Express/node REST API backend with Advanced REST Client or Postman? 【发布时间】:2012-07-26 04:18:29 【问题描述】:我需要使用 Advanced REST Client 或 Postman for Chrome 测试接受 JSON 的 REST API 后端。
但我遇到了问题:我只能使用内置表单和 Content-Type: application/x-www-form-urlencoded 发送请求
但这不起作用,因为我嵌入了文档,例如,我需要发布这个:
title:"Awesome post!", tags: ["blue", "jeans"]
这对于任一 Chrome 扩展程序的内置形式都是不可能的。
当我选择 Raw Body 并在那里插入内容时,我的后端将 req.body 视为一个空对象。当我还设置标题“Content-Type: application/json”时,我的后端出现以下错误:
SyntaxError: Unexpected token n
at Object.parse (native)
at IncomingMessage.exports.parse.application/json (/Library/WebServer/Documents/slipfeed/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:135:16)
at IncomingMessage.EventEmitter.emit (events.js:85:17)
at IncomingMessage._emitEnd (http.js:366:10)
at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)
at Socket.socket.ondata (http.js:1682:22)
at TCP.onread (net.js:404:27)
注意:我在应用程序的配置中使用了 bodyParser() 和 methodOverride()。禁用它们没有帮助。
我应该使用什么设置才能将 JSON 输入到 Raw body 字段并且请求会起作用?
为了澄清答案:我必须同时设置 Content-Type: application/json(在请求标头中)并使用格式正确的 json,其中属性名称也在双引号内以使其正常工作。
【问题讨论】:
【参考方案1】:尝试将字段属性括在引号中: "title":"很棒的帖子!", "tags": ["blue", "jeans"]
【讨论】:
实际上,这似乎可以解决问题。我已经从标题中删除了 Content-Type: application/json。现在可以了,太棒了:) @ragulka:你能告诉我你是怎么做到的吗?我添加了标题,但它仍然给我错误。此外,当我作为“application/x-www-form-urlencoded”发送时,正在设置两个内容类型标头。 @Razort4x,任何像 Postman 这样的 REST 客户端都应该给你设置标题的选项。在 Postman 中,特别是有一个按钮,上面写着“标题”,它可以让您设置标题,甚至可以为您自动完成。以上是关于如何使用 Advanced REST Client 或 Postman 测试 Express/node REST API 后端?的主要内容,如果未能解决你的问题,请参考以下文章
如何在google浏览器上安装Advanced Rest Client插件
谷歌接口测试插件 Advanced-REST-client 的安装与使用
如何将新项目添加到 ARC Advanced Rest Client 独立版本