Java 来自服务器的HTTP 200连接异常

Java 来自服务器的HTTP 200连接异常,java,Java,尽管WireShark显示已成功收到响应,但我仍收到此异常: Caused by: java.net.ConnectException: Connection refused: connect at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) at java.net.AbstractPlain

尽管WireShark显示已成功收到响应,但我仍收到此异常:

Caused by: java.net.ConnectException: Connection refused: connect
at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.<init>(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
... 18 more
那么为什么会有例外呢? 最糟糕的是,它甚至不在我的程序中,所以我不知道如何调试它! 顺便说一下,它是Java 1.7.0_17和Windows 8.1(防火墙关闭)。 而且,使用curl,我可以访问相同的URL


当然,很有可能,该应用程序会尝试通过什么端口访问除此之外的其他资源,但这不应该发生。

它看起来确实很神秘,您已经表达了我遇到的一个主要可能性:异常来自与WireShark报告的连接尝试不同的连接尝试。事实上,WireShark结果根本不显示连接的建立,而是通过已建立的连接接收一些数据,然后连接关闭。如果客户端防火墙关闭,WireShark没有显示与失败的连接尝试相关的流量,则可能是客户端正在尝试(但未能通过)连接到本地主机上的服务。这样的流量可能会绕过网络堆栈。在任何情况下,如果不查看失败的代码,我们在这里真的不能为您做太多。它看起来确实很神秘,您已经表达了我遇到的一个主要可能性:异常来自不同的连接n次尝试,而不是WireShark正在报告的一次。事实上,WireShark结果根本不显示连接的建立,而是通过已建立的连接接收一些数据,然后连接关闭。如果客户端防火墙关闭,WireShark不会显示与失败连接相关的流量尝试,则可能是客户端正在尝试(但失败)连接到本地主机上的服务。此类流量可能会绕过网络堆栈。在任何情况下,如果不查看失败的代码,我们在这里都无法为您做很多事情。
srv->clnt HTTP 1.1 OK
clnt->srv ACK
clnt->srv FIN, ACK
srv->clnt ACK