繁体   English   中英

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

[英]How to get the source port being used by java.net.HttpURLConnection?

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

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

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

无论哪种方式, 您的 URL对象都有此信息,您可以使用其getPort()方法进行查询。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM