求教一个最简单的 http post 请求

如果你百度 nodejs http post,会出来一大堆处理 post 请求的例子,却没有一个教你发送 post 请求的例子,大概是太简单了吧。

参考官方文档,会发现,有个 http.get()http.request(),没有 http.post.

http.get() 很简单,下面这个代码便能出结果。

http.get('www.baidu.com', function (res){
    console.log(res);
});

http.request() 我尝试了一下, cmd 中响应很慢,很久之后才报一个{ [Error: socket hang up] code: 'ECONNRESET' }的错误

http.request({
    host: '127.0.0.1',
    port: 8080,
    path: '/signin',
    method: 'post'
}, function (res){
    console.log(res);
});

表示用java实现的 http post 方法能成功,说明配置信息没错。而且,在上面方法中,如果端口打错的话,错误信息是

{ [Error: connect ECONNREFUSED]
  code: 'ECONNREFUSED',
  errno: 'ECONNREFUSED',
  syscall: 'connect' }

求解http.request()的正确用法,以及我错在了哪里

跟帖
前端乱炖
4年前

我们一般用这个 :npm install request。

最常用的nodejs库之一。

沙发
@前端乱炖 我的需求不是很复杂,看起来原生的`http.request()`也比较简洁,就不想用其他包了
板凳
欧雷
4年前
@前端乱炖 他自己給自己回答問題,然後選自己為最佳是什麼節奏???
地板
@前端乱炖 @欧雷 我把这种行为定义为自己发现问题,然后努力解决问题的好习惯。 我的问题是寻求一个简单的demo,但大家都向我推荐实用的类库,也没有指出我问题中demo的错误所在。 我没有选择@前端乱炖 的为最佳答案原因就在他的评论中了。 选择自己为最佳,是向大家说明一下这个问题我自己解决了。 真要选最佳答案的话,我肯定是喜欢@chenxin6321 的,只可惜比我晚了一天,最佳已经不能换了,你也看到我给他了一个赞。 在知乎上也是允许自问自答的,我自觉这没有什么可耻的,倒是希望大家以后在回答问题的时候能抓住问题的重点。 被提问者一个人选为最佳又怎样?赞的最多的,才是大家心目中最佳的答案吧。
4 楼

骚年…我在后面加了一个.end(),额~就好了,不知道为什么。

http.request({
    host: '127.0.0.1',
    port: 8080,
    path: '/signin',
    method: 'post'
}, function (res){
    console.log(res);
}).end();
5 楼
欧雷
4年前
@Bolt_白衣苍狗 自己給自己回答問題,然後選自己為最佳是什麼節奏???@前端乱炖
6 楼
chenxin6321
4年前

没记错的话,get方法是一个语法糖,其内部调用request,并且会自动调用end()。你用的request,必须自己手动end()了。

7 楼
死月
4年前

我都用自己写的:

$ npm install spidex
8 楼
说几句
广告位 点击查看投放指南

我的收藏