HTTP Headers中 Content-Length问题
发布于 8 年前 作者 zhang962976642 6713 次预览 最后一次回复是 8 年前 来自 问答
本人 node版本为 v7.8 在使用 http.request方法时,无法发送post请求,当注释Content-Length时可发送请求
但是我使用 Content-Length长度为 序列化后的长度,所以我想请教下,为什么无法发送次请求。
此时长度都为71,为何无法发送post请求,当注释掉后可发送请求
再次谢谢各位大佬
20 回复
@i5ting 请教下 狼叔
http 内容实体 res.write(body) 发了吗?
@vincentLiuxiang 没有啊,没有发送这个请求
@vincentLiuxiang 他不走http.request这个方法
我猜不加
Content-Length的时候它也是走了http.request这个方法,只不过报错了,你没捕捉error吧? 后面的代码被你的图片挡住了,也没看清。。。@imhered 我去掉conteng-length 确实可以发 post请求,我打印状态码是 200 ,但是 res.on(‘data’,fn);这个事件没有触发
你把完整的错误信息贴出来,不然完全不知道你在说什么,还有 @imhered 说的也可能对。
@vincentLiuxiang
第一张图为 http的响应头信息,确实发送了post,但是data事件没触发,这是我 注释掉Content-length之后发送的请求,如果不注释,他不走这个 request方法
@zhang962976642
res.on('data',cb)这个是正确的情况下才会监听到该事件?error你监听了么? 上你完整的代码@imhered 麻烦你了

@zhang962976642 你这个截图实在不好调啊,我给你上个正确代码吧,我之前写的
我这里是https请求所以端口是443,你的是http端口80没错
@imhered 我想转发post请求,怎么携带这两个参数
你这
length不对吧?有中文。@xadillax 我用postman模拟就没问题
@zhang962976642 我代码里的
iapdata就相当于你的data@zhang962976642 post 请求,你的方法里没有把 body 发出去啊, 在 _req.end() 之前 先 _req.write(body)
@zhang962976642 实在不行就用 request模块吧,我以前也是用
http后来用了request模块发现不要太爽@vincentLiuxiang 您好我现在改成这样了
可是这样为何还是没有数据
@imhered @vincentLiuxiang 谢谢二位, 完美解决 确实是没有发送 req.write()导致没有请求题的问题 ;
@zhang962976642 建议好好看看 http 协议 。。。不然,以后出问题了靠猜是没用的