一个大小写问题引发的ECONNRESET
发布于 5 年前 作者 sunyoboy 4324 次浏览 来自 问答

使用Request模块发起HTTP请求导致Error: read ECONNRESET,使用Postman,curl都能正确得到响应。忙了一下午,通过tcpdump抓包、WireShark查看抓包信息,发现Request模块发送HTTP请求Host字段为小写host,我们的服务器只支持大写所以导致Error: read ECONNRESET。 解决问题很简单了,找到request模块的request.js文件,大约290行左右 var hostHeaderName = self.originalHostHeaderName || 'host’ self.setHeader(hostHeaderName, self.uri.hostname) 改为 var hostHeaderName = self.originalHostHeaderName || 'Host’ self.setHeader(hostHeaderName, self.uri.hostname) 这到底算不算Bug哪?

2 回复

是Bug,不过是你们服务器的。

Each header field consists of a name followed by a colon (":") and the field value. Field names are case-insensitive. 引用自 http://stackoverflow.com/questions/5258977/are-http-headers-case-sensitive

@leizongmin 是的,headers都是大小写不敏感的。 自豪地采用 CNodeJS ionic

回到顶部