如何获取java.net.HttpURLConnection使用的源端口?

时间:2014-07-16 04:06:52

标签: java

我正在使用java.net.HttpURlConnectionjavax.net.ssl.HttpsURLConnection个对象连接到http / https服务器。我的测试在某些时候失败了,因为显然他们已经用尽了我本地机器上的所有可用端口。这些是持久的http连接,因此应该重复使用。

我正在尝试一些方法来解决这个问题。但是要检查我的修复是否有效,我需要确保在HttpURlConnectionHttpsURLConnection的后续实例中使用源计算机上的相同端口。如何获取java.net.HttpURLConnection使用的源端口?

2 个答案:

答案 0 :(得分:0)

您可以将端口指定为您提供给HTTP连接的URL的一部分,或者使用defaultone。

无论哪种方式,您的网址对象都有此信息,您可以使用getPort()方法查询该信息。

答案 1 :(得分:0)

我没有看到任何方法允许在HttpURlConnection中使用相同的本地端口绑定,或者获取用于绑定的本地端口号。 Java的Socket类中有一些方法允许你绑定相同的本地端口(我认为是构造函数方法和bind())但是如果你想要这样做,请检查Apache httpclient 4.x中的PlainConnectionSocketFactory而不是Socket因为那些HttpClient有更方便的方法。