我怎样才能获得比 `Errno::ECONNRESET: 现有连接被远程主机强行关闭更多的信息。 - SSL_connect`

How can I get a more information than `Errno::ECONNRESET: An existing connection was forcibly closed by the remote host. - SSL_connect`

我有一些 ruby 测试代码命中 API 端点并发送它 JSON。

RestClient.post(url, json, :content_type => :json, :accept => :json) { |response, request, result|
  @last_response = response
}

它有时会出现此错误。

Errno::ECONNRESET: An existing connection was forcibly closed by the remote host. - SSL_connect

我可以获得有关正在发生的事情的更多信息吗?

通过设置 RESTCLIENT_LOG=stdout 环境变量,您将在终端中看到 RestClient 调试数据。或者您可以将 stdout 替换为文件路径以将其写入日志文件。

原因可能是 SSL 证书无效或只是不稳定的 API 端点有时会在返回响应之前断开连接。

解决此类网络错误可能具有挑战性。如果保持不变,您可以尝试使用 Wireshark 或 tcpdump 捕获网络流量,这可能会让您深入了解正在发生的事情。

一般来说,ECONNRESET 通常意味着远程服务器关闭了连接,而您的客户端仍有数据排队等待发送给它。