HttpURLConnection连接重置错误处理

我有版本SE6上运行的服务器客户端Java应用程序。 服务器和客户端之间的消息传递是通过http协议。 通常这个应用程序运行良好,但最近我开始在客户端日志中看到一些“连接重置”错误。 我认为这可能是因为保持活力和禁用它,但仍然存在错误。 这是客户端错误日志。

java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:208)
    at java.net.SocketInputStream.read(SocketInputStream.java:134)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:247)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:287)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:346)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:717)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:663)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1336)
    at cb.smg.general.utility.ESIHttpCaller.executePost(ESIHttpCaller.java:43)

我知道在服务器端的一个问题,如果工作线程池是完整的套接字没有关闭,服务器端和客户端的合适的http代码,我们得到java.net.SocketException:意外的服务器文件结束。 卜应该是非常罕见的。 我的第一个问题是这个错误(连接重置)是因为应用程序外的一些变化(例如操作系统修复)。第二,处理这个异常的最好方法是什么,目前我只是在finally块中调用下面的方法。

HttpURLConnection.disconnect()

如果工作线程池已满,则在服务器端和客户端没有合适的http代码时关闭套接字,否则我们会得到java.net.SocketException: Unexpected end of file from server.

或'连接重置'。 这取决于你是否正在阅读或写作。

我的第一个问题是这个错误(连接重置)是因为应用程序之外的某些更改(例如操作系统修复)。

没有。

其次,处理这个异常的最好方法是什么,目前我只是在finally块中调用下面的方法。

好主意。

链接地址: http://www.djcxy.com/p/56571.html

上一篇: HttpURLConnection connection reset error handling

下一篇: SocketException Handling