HttpURLConnection连接重置错误处理

时间:2015-04-08 09:37:50

标签: java sockets 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()

1 个答案:

答案 0 :(得分:1)

  

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

'连接重置'。这取决于你当时是在读书还是写作。

  

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

没有

  

其次,处理此异常的最佳方法是什么,目前我只是在finally块中调用以下方法。

好主意。