2012-07-27 21 views
21

我需要测试我的REST API后端接受JSON与高级REST客户端或Postman for Chrome。如何使用Advanced REST Client或Postman测试Express/node REST API后端?

但我遇到的问题:我只能用发送请求的内置形式和使用内容类型:应用程序/ x-WWW窗体-urlencoded

但是这是不行的,因为我有嵌入式documennts,例如我需要张贴这个

{title:"Awesome post!", tags: ["blue", "jeans"] } 

这是不可能的,无论是Chrome扩展的内置形式。

当我选择Raw Body并在其中插入内容时,我的后端将req.body视为一个空对象。当我还设置了头“内容类型:应用程序/ 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输入到原始主体字段并且请求可以工作?

为了澄清答案:我必须设置Content-Type:application/json(在请求标头中)并使用格式良好的json,其中属性名称也在双引号内以使其工作。

回答

27

尝试在引号引起的字段属性: {“称号”:“真棒的帖子!”,“标签”:“蓝”,“牛仔裤”]}

+1

我试过了,我没有得到一个错误,但req.body是空的 – ragulka 2012-07-27 13:38:35

+1

Actuall,这似乎是伎俩。我已经从标题中删除了Content-Type:application/json。它现在的作品,辉煌:) – ragulka 2012-07-27 13:46:32

+0

@ragulka:你能告诉我你是如何做到的吗?我添加了标题,但它仍然给我错误。另外,当我以“application/x-www-form-urlencoded”的形式发送两个内容类型标题时, – Razort4x 2014-04-04 12:00:28