如何获得比Errno :: ECONNRESET更多的信息:现有连接被远程主机强制关闭。 - SSL_connect`
问题描述:
我有一些ruby测试代码碰到API端点并发送JSON。如何获得比Errno :: ECONNRESET更多的信息:现有连接被远程主机强制关闭。 - SSL_connect`
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
通常意味着远程服务器关闭,而你的客户仍然有排队的数据发送给它的连接。