read ECONNRESET at TLSWrap.onStreamRead (internal/stream_base_commons.js:209:20) { errno: -4077(代码片段

Posted twinkle||cll

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了read ECONNRESET at TLSWrap.onStreamRead (internal/stream_base_commons.js:209:20) { errno: -4077(代码片段相关的知识,希望对你有一定的参考价值。

本人在使用 node + koa来实现gitup的授权登录,但是在第二步获取access_token的时候报下面的错误了。关于gitup如何授权登录,有兴趣的同学可以百度一下,获取访问官网的api地址 https://docs.github.com/cn/developers/apps/building-oauth-apps/authorizing-oauth-apps#%E5%93%8D%E5%BA%94,这里面讲的很详细,本人就不在赘述了,要说的是在获取access_token时候遇到的问题,在这里看看能不能帮到有缘人。在这里插入图片描述

问题复现

在这里插入图片描述

报的是这个错误,啥意思,从错误的名称来看,是连接重置了,但是连接为啥会重置呢?

gitup问题

gitup 在国内有一个问题——打不开,然后此时,好多博客或者文章就会让你去使用 科学上网的工具,科学上网的工具呢,本身是走的是一个代理,通过代理来实现gitup可以访问。关于科学上网的工具请自行搜索。

第二步获取access_token

获取第二步的代码很简单,如下:

 async gitUpCallBack(ctx: Application.ParameterizedContext) {
    // 获取之前的code
    const { code } = ctx.request.query as ILoginGitUpCallbackParams;
    // 获取到code后,请求gitup服务获取access_token
    try {
      const accessToken = await axios({
        method: 'post',
        url: 'https://github.com/login/oauth/access_token?client_id=client_id&client_secret=client_secret&code=' + code,
        headers: {
          'User-Agent': 'blog web'
        }
      })
      console.log(accessToken, '-----accessToken');

    } catch (err) {
      console.log(err, '-----err');
    }
    ctx.body = '获取成功!'
  }

上面的代码是一个koa的中间件,然后使用 axios来发送http请求。

错误排查

对于出现错误,我们最主要的是进行错误排查,我一开定位的是 axios是不是不能发送post请求,然后我使用原生的 http服务来发送,也是报相同错误的。

使用postman进行测试

对于同样的参数,我们使用postman进行测试,发现是好的,能够获取预期的结果(access_token)如下:
在这里插入图片描述

然后使用postman获取node端的源码,发现和我们的是一样的,我们的代码是没有问题的。

百度寻找结果

我发现好多错误都类似,并且听到了 proxy 这个词,那我就想到我本身也是有代理的,postman可以请求成功是没有走代理的,所以最后关闭代理进行测试。(下面抽取两个简单的截屏)

在这里插入图片描述
在这里插入图片描述

关掉科学上网后会发现,我们的gitup已经打不开了,这里提供一个暂时的解决办法,修改hosts配置文件如下

进入gitup

我测试的时候是这么做的,

  1. 找一个ping gitup.com 延迟比较低的ip,寻找的方法是,输入网址:http://ping.chinaz.com/github.com
    在这里插入图片描述
  2. 打开C:\\Windows\\System32\\drivers\\etc 目录下面,找到我们的hosts文件,然后进行修改在这里插入图片描述

保存后,就可以打开gitup了,但是有一个缺陷,短暂时间可以用,但是长时间不行,需要频繁的进行修改,目前我还没有办法怎么长时间的访问gitup不挂,除了科学上网外

测试结果

在这里插入图片描述

获取成功,大功告成!

以上是关于read ECONNRESET at TLSWrap.onStreamRead (internal/stream_base_commons.js:209:20) { errno: -4077(代码片段的主要内容,如果未能解决你的问题,请参考以下文章

完美解决蚁剑{“code“:“econnreset“,“errno“:“econnreset“,“syscall“:“read“}

socket error:Error:read ECONNRESET.怎么回事

Nodejs 套接字报错处理 Error: read ECONNRESET

socket error:Error:read ECONNRESET.怎么回事

ECONNRESET和WSAECONNRESET怎么产生的以及如何避免

如何解决错误读取 ECONNRESET 公牛库