[英]How to properly override HttpURLConnection connect() method in Java
我有一個擴展java.net.HttpURLConnection
的類。 我正在為Android開發並處理摘要身份驗證(通過URLConnection本身不支持摘要身份驗證)。
最初,我想重寫connect()
方法,以便我可以調用super.connect()
查看響應代碼,然后在得到401的情況下“在super.connect()
”執行摘要身份驗證super.connect()
方法在以下方法中聲明為abstract原始的java.net類,因此必須實現。 我想找到此方法的源代碼(因為您可以在處理標准實例時調用它),但找不到任何東西可以向我展示其內部發生了什么。
我的下一個選擇是重寫getResponseCode
但再次我必須為connect()
提供一個主體。
有人知道HttpURLConnection.connect()
實際作用嗎? 我正確地解決了嗎?
要獲得編寫自己的代碼的靈感來源,請查看openjdk代碼。
例如grepcode.com,下面是一些處理舊的https連接的內褲 。
也可以在其他軟件包中隨意探索,您可能會發現更新的內容
看一下我的示例,使用HttpUrlConnection進行連接並返回JSON字符串。 參見: https : //gist.github.com/marlusantos/1004ee13e528b2e99dd528ceb2294d1b這種情況是我在AsyncTask中使用的。
因此,根據我的研究,實際上是sun.net.www.protocol.http.HttpURLConnection
,當使用HTTP協議調用URL.openConnection()
時,將其作為具體對象/類型返回。 這是我應該派生的具體類,它使生活更輕松,而不是必須實現抽象類java.net.HttpURLConnection
。
這樣,我可以覆蓋connect()
方法以支持摘要身份驗證等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.