簡體   English   中英

如何在Java中正確覆蓋HttpURLConnection connect()方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM