2017-04-06 27 views
0

我在Java中使用HttpsURLConnection並通過某種循環創建了10個連接,稍後由我的程序中的不同線程使用。如何獲得HttpsUrlConnection對象的唯一ID

HttpsURLConnection connection = null; 
connection = (HttpsURLConnection) url.openConnection(); 

想知道如何知道當前線程使用哪個連接。我只需要一些連接的唯一標識符。

一些東西一樣,

System.out.println(connection); 

但上面的System.out語句印刷非常通用的服務器名稱。不是連接對象的哈希碼。

想知道我該怎麼做?

+2

也許'connection.hashCode()'? – TeWu

+0

謝謝Tewu。這個Api方法有些過頭了。請在答案框中回覆。 – Ammad

+0

或者['System.identityHashCode(connection)'](http://stackoverflow.com/questions/4930781/how-do-hashcode-and-identityhashcode-work-at-the-back-end) – zapl

回答

2

hashCode方法定義在java.lang.Object(並在需要時在子類中重寫),因此您可以在任何對象上調用它。在你的情況connection.hashCode()應該給你的connection對象的哈希碼。

0

哈希碼可以相同。記住哈希碼並且等於javadoc中的契約。

請儘量避免依賴哈希碼。因爲它不是一個好的做法,並且在一般情況下hashcode每次都是不同的。但它不保證是獨一無二的。

你可以使用類似連接管理api的東西。

請參考下面的鏈接。可能會有幫助。

如果你可以分享你的代碼或整個圖片我可以幫助更好的方式。

http://www.baeldung.com/httpclient-connection-management