2016-10-11 54 views
0

我有一個擴展java.net.HttpURLConnection的類。我正在爲Android開發並處理摘要身份驗證(通過URLConnection本身不支持)。如何正確覆蓋Java中的HttpURLConnection connect()方法

本來我想重寫connect()方法,以便我可以調用super.connect()查看響應代碼,然後在「引擎蓋下」執行digest auth,如果我們得到401。connect方法在原始中聲明爲抽象java.net類,所以它必須執行。我想找到這個方法的源代碼(因爲你可以在處理標準實例時調用它),但找不到任何東西來顯示下面發生了什麼。

我的下一個選擇是覆蓋getResponseCode,但我必須再次提供connect()的機構。

那麼有誰知道HttpURLConnection.connect()實際上在做什麼?我是否正確地處理這個問題?

回答

0

所以根據我的研究,它實際上是sun.net.www.protocol.http.HttpURLConnection,它在使用HTTP協議調用URL.openConnection()時作爲具體對象/類型返回。這是我應該從中獲得的具體類,以使生活更輕鬆,而不必實施抽象類java.net.HttpURLConnection

這樣我就可以覆蓋connect()方法來支持摘要認證等。