“建立安全 TLS 连接之前客户端网络套接字已断开”,节点 10

2024-04-14

当我向 google api 发送请求时(使用 axios 或仅使用 https),例如https://www.googleapis.com/blogger/v3/blogs/2399953?key=...

我总是点击“在建立安全 TLS 连接之前,客户端网络套接字已断开连接" error.

但是如果我发送请求到https://api.github.com https://api.github.com,它工作得很好。我已经用谷歌搜索了该错误,但找不到太多有用的信息。这里https://github.com/nodejs/node/issues/21088 https://github.com/nodejs/node/issues/21088说如果服务器使用 TLS 1.0,它可能会发生,但显然这不是我的情况。

我也尝试谷歌API https://www.npmjs.com/package/googleapis但仍然遇到同样的错误。

知道如何修复错误吗?

- - 更新 - -

我的问题已于 5 个月前结束。我打开了an issue https://github.com/googleapis/google-api-nodejs-client/issues/1471针对googleapi,它也被关闭了。我已经放弃了它,但令我惊讶的是它不断获得流量。所以我更新了我的问题并希望它能重新开放。

首先,google api已经移到这里了https://github.com/googleapis/google-api-nodejs-client https://github.com/googleapis/google-api-nodejs-client

二、只用vpn来运行第一个例子 https://github.com/googleapis/google-api-nodejs-client#first-example在那里(使用VPN,因为谷歌服务因某种原因被阻止),我将获得连接ETIMEDOUT,同时我可以从浏览器获取结果。

const {google} = require('googleapis');
const blogger = google.blogger({
  version: 'v3',
  auth: 'YOUR API KEY'
});

blogger.blogs.get({blogId: '3213900'}, (err, res) => {
  if (err) {
    console.error(err);
    throw err;
  }
  console.log(`The blog url is ${res.data.url}`);
});
//But I can get result in browser https://blogger.googleapis.com/v3/blogs/3213900?key=xxx

我认为问题是可以解决的,因为 nodejs 不通过我的 VPN 代理发送请求。所以我的问题与这个有点相关,当 URL 在浏览器中运行时,什么可能导致“connect ETIMEDOUT”错误? https://stackoverflow.com/questions/33350604/what-could-cause-connect-etimedout-error-when-the-url-is-working-in-browser

但那里的解决方案对我不起作用。这个SO中的一个答案如何将 http 代理与 node.js http.Client 一起使用? https://stackoverflow.com/questions/3862813/how-can-i-use-an-http-proxy-with-node-js-http-client提到使用request https://github.com/request/request它有效!

var request = require("request");

request(
  {
    url:
      "https://blogger.googleapis.com/v3/blogs/3213900?key=xxx",
    method: "GET",
    proxy: my-vpn-proxy,
  },
  function (error, response, body) {
    if (!error && response.statusCode == 200) {
      console.log(body);
    }
  }
);

太糟糕了,请求被否决了!我也无法让 axios 工作!

我也尝试过tunnel https://www.npmjs.com/package/tunnel并得到了read ECONNRESET error;我试过全局隧道 NG https://www.npmjs.com/package/global-tunnel-ng并得到错误

TypeError: Cannot read property 'proxy' of undefined
    

But https 代理代理 https://www.npmjs.com/package/https-proxy-agent也有效,

var url = require('url');
var https = require('https');
var HttpsProxyAgent = require('https-proxy-agent');
 
// HTTP/HTTPS proxy to connect to
var proxy = 'my-vpn-proxy';

var endpoint = 'https://blogger.googleapis.com/v3/blogs/3213900?key=xxx';
var opts = url.parse(endpoint);
 
var agent = new HttpsProxyAgent(proxy);
opts.agent = agent;
 
https.get(opts, function (res) {
  console.log('"response" event!', res.headers);
  res.pipe(process.stdout);
});

所以我认为这个问题可能是可以解决的。


问题重新提出后我提出另一个问题 https://github.com/googleapis/google-api-nodejs-client/issues/2345对照google api终于得到答案了!

所以google api已经支持使用代理,检查这里 https://github.com/googleapis/google-api-nodejs-client#using-a-proxy

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“建立安全 TLS 连接之前客户端网络套接字已断开”,节点 10 的相关文章

随机推荐

  • 通过另一个表对 hasMany 进行 Sequelize

    好的 我有以下三个models Module var Module sequelize define module id DataTypes INTEGER name DataTypes STRING description DataTyp
  • Linux 核心转储太大!

    最近 我注意到应用程序生成的核心转储的大小有所增加 最初 它们的大小约为 5MB 包含大约 5 个堆栈帧 现在我的核心转储超过 2GB 其中包含的信息与较小的转储没有什么不同 有什么方法可以控制生成的核心转储的大小吗 它们不应该至少小于应用
  • 使用 Neo4J 和 Spring Data 按 ID 创建关系

    我定义了一个简单的节点对象 如下所示 Node product public class Product Id private String sku Relationship type SOLD BY private Set
  • 如何更改应用商店中的销售国家/地区[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 您好 我的应用程序出现在美国商店 但它主要是澳大利亚应用程序 如何让它出现在澳大利亚应用商店而不是美国应用商店中 但是我仍然可以在澳大利亚应用商店中搜
  • 通过 feature_columns 使用 Dataset API 将自由文本特征输入 Tensorflow Canned Estimators

    我正在尝试建立一个模型reddit score f subreddit comment 主要是作为一个示例 我可以在此基础上构建一个工作项目 我的代码是here https github com andrewm4894 my google
  • iOS:UIButton根据文本长度调整大小

    In interface builder holding Command will resize a button to fit its text I was wondering if this was possible to do pro
  • 如何在 ColdFusion 中通过多组验证尝试来实现 OWASP ESAPI 验证器?

    我一直在研究 ColdFusion 9 中包含的 OWASP ESAPI 实用程序 ColdFusion 的内置企业安全 API http www petefreitag com item 788 cfm The encoder实用程序非常
  • PHP 致命错误

    当 PHP 出现致命错误时 有没有办法让代码继续 而不是退出 例如 我遇到超时致命错误 并且我希望每当它发生时就跳过此任务并继续执行其他任务 在这种情况下 脚本退出 有一种使用输出缓冲的 hack 可以让您记录某些致命错误 但是在发生致命错
  • 在WP7中调用普通的Web服务

    我有普通的 NET Web 服务 不是 WCF 服务 我已使用服务参考将此服务添加到我的 WP7 项目中 因为我们没有 通常我们会使用 添加服务引用 选项添加 WCF 服务 但这里我使用 添加服务引用 选项添加普通的 Web 服务 例如我有
  • python 3.5 中的 json.loads 和 Redis

    我使用 json dumps 创建了一个 JSON 对象 并在 Redis 列表中将其 RPUSH ed 当使用 LRANGE redis lrange 返回 JSON 时 我收到一个二进制字符串 b si 00 ff 所以 json lo
  • 如何将 ISO 8601 格式的日期值转换为 JavaScript 中的日期对象?

    我一直在尝试将日期值转换为更易读的格式 为此 我尝试使用 JavaScript 解析日期Date parse 方法 然而 这不适用于输入 例如 2007 09 21T14 15 34 058 07 00 我有 最终目标是输出一个日期字符串
  • Eclipse IDE Java 构建路径已更改。我选择哪个?

    我正在尝试遵循一些有关 Selenium 的教程 但此时遇到了困难 右键单击 项目 并选择属性 在 属性 对话框中 单击 Java 构建路径 单击库选项卡 然后 单击 添加外部 JAR 添加外部 JARS 按钮呈灰色且禁用 该对话框显示模块
  • pyside-rcc“dyld:库未加载:...”

    我是一个 python 和 Qt 新手 我在运行 pyside rcc 和 Pyrcc4 时遇到一些问题 问题不在于可执行文件的链接 而在于库问题 我不是 Unix 向导 可能也没有帮助 当我跑步时 pyside rcc我收到以下错误 dy
  • 在 LINQ 中查找相似记录

    我有以下 LINQ 查询 它将用于查找任何 相似 的货物 from c in cons group c by new c TripDate Value c DeliveryPostcode c DeliveryName into cg le
  • Firefox 在 SVG“使用”具有遮罩的元素上出现不透明度问题

    我最近注意到我的一张 SVG 图像在 Firefox 中查看时似乎失去了半透明性 我一直在追踪这个问题 它让我发现opacity不被服从时use元素 具体来说 有一个mask随附的 我能够使用fill opacity解决这个问题 但这并不理
  • 如何使用 Swift 更改 iOS 中 UIButton 的状态?

    我有六个按钮的 Objective C 工作代码 但我似乎没有找到如何使用 Swift 更改按钮的状态 那么如何让下面的代码在 Swift 中工作呢 self button2 setBackgroundImage UIImage image
  • 甲骨文对谷歌的诉讼对 Android 开发者意味着什么? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 什么是甲骨文对谷歌提起诉讼 http mashable com 2010 08 14 google rebuts oracle lawsuit inv
  • ConcurrentQueue .Net:多线程消费者

    我有一个非常基本的问题 更多地围绕以下概念ConcurrentQueue 队列是先进先出的 当多个线程开始访问时 我们如何保证先进先出呢 假设我添加了Apple Oranges Lemon Peach and Apricot 以该顺序 首先
  • Java 导出为 Jar 有错误 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 两个问题 1 当将java项目导出为JAR文件时 应用程序如何知道首先运行包中的哪个Class 我的应用程序特别要求 userInterfa
  • “建立安全 TLS 连接之前客户端网络套接字已断开”,节点 10

    当我向 google api 发送请求时 使用 axios 或仅使用 https 例如https www googleapis com blogger v3 blogs 2399953 key 我总是点击 在建立安全 TLS 连接之前 客户