Node.js POST请求

5

我查看了API但是没有找到。

client.request()client.request("POST", ...)中,我应该在哪里/如何放置POST请求的数据?

3个回答

8
也许你应该仔细看一下。这是直接从node.js API文档中摘取的:
request_headers是可选的。Node可能会在内部添加其他请求头。返回一个ClientRequest对象。
请记住,如果您计划发送正文,请包括Content-Length标头。如果您打算流式传输正文,则可以设置Transfer-Encoding: chunked。
注意:请求尚未完成。此方法仅发送请求的标题。需要调用request.end()来完成请求并检索响应。(这听起来很复杂,但它为用户提供了使用request.write()向服务器流式传输正文的机会。)
request.write()用于发送数据。
因此,您可以像这样操作(或类似操作):
var rq = client.request('POST', 'http://example.org/', {'Content-Length': '1024'});
var body = getMe1024BytesOfData();

rq.write(body);
rq.end();

这段代码只是为了让概念更清晰。我没有进行任何测试。


如果适合你的风格,你也可以使用 rq.end(body)。 - mm2001
真的,但我喜欢将不同用途的东西分开:write() 用于输出,而 end() 用于……嗯……结束。 - selfawaresoup
这似乎在v0.3.6中有所改变,并且现在在v0.4.7中看起来非常不同。请参考 - 700 Software

1

为了更轻松地处理客户端请求,您可以使用request模块。它会处理所有繁重的工作,并提供简单的API。


0

你也可以使用Requestify,这是我为nodeJS编写的非常酷炫且非常简单的HTTP客户端,它还支持缓存。

只需执行以下操作即可执行POST请求:

var requestify = require('requestify');

requestify.post('http://example.com', {
    hello: 'world'
})
.then(function(response) {
    // Get the response body (JSON parsed or jQuery object for XMLs)
    response.getBody();
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接