request模块遇到的 Error:socket hang up 问题
发布于 6 个月前 作者 zhongshiji 1317 次浏览 来自 问答

我的代码是这样的,很简单:

const url = 'http://www.scau.edu.cn/2018/0502/c1390a82119/page.htm'
		request(url, function(error, response, body) {
			if (error) {
				console.error(error) // Error: socket hang up
			}
			// console.log(body)
		})

控制台报错:

{ Error: socket hang up
    at createHangUpError (_http_client.js:331:15)
    at Socket.socketOnEnd (_http_client.js:423:23)
    at emitNone (events.js:111:20)
    at Socket.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1055:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9) code: 'ECONNR
ESET' }

这个url不能得到body,一般的都可以。 请问是什么原因呢,网上搜了很多但都没有找到具体的解决办法。

9 回复

请大神解惑。

我要怎样才能得到body?

request这么古董, 换axios吧, 并且要上promise啊, 回调函数不觉得难用吗

@xiaozhongliu 最近才看了《nodejs包教不包会》,虽然用过axios,对目前的新技术栈没有清楚了解,多谢指教。

同意3楼的说法,现在axios和fetch用得比较多

代码没问题,hang up 明显是服务端挂起请求了,与客户端无关。我试了下这个页面正常返回body

@royalrover 如果你用这个上面说“古老”的request模块去请求这个页面 而不是axios或fetch,会发现不能正常返回body。

@zhongshiji 用的就是request,返回一切正常,页面的html

这很奇怪。

回到顶部