我有一个扩展java.net.HttpURLConnection
的课程。我正在为Android开发并处理digest auth(通过URLConnection本身不支持)。
最初我想覆盖connect()
方法,以便我可以调用super.connect()
查看响应代码,然后如果我们得到401则执行“引擎盖下的摘要验证”。连接方法在原始java.net类中声明为抽象,因此必须实现它。我想找到这个方法的源代码(因为你可以在处理标准实例时调用它),但找不到任何东西来向我展示下面发生了什么。
我的下一个选择是覆盖getResponseCode
,但我必须再次提供connect()
的正文。
所以有人知道HttpURLConnection.connect()
实际上做了什么吗?我能正确地解决这个问题吗?
答案 0 :(得分:0)
有关编写自己代码的灵感来源,请查看openjdk代码。例如,grepcode.com和here's some (old) underwear to handle https connections。
随意浏览其他软件包同样,您可能会发现newer stuff
答案 1 :(得分:0)
在我的示例中查看使用HttpUrlConnection进行连接并返回JSON字符串。 见:https://gist.github.com/marlusantos/1004ee13e528b2e99dd528ceb2294d1b 这个案例我在AsyncTask中使用过。
答案 2 :(得分:0)
因此根据我的研究,实际上sun.net.www.protocol.http.HttpURLConnection
在使用HTTP协议调用URL.openConnection()
时作为具体对象/类型返回。这是我应该从中获得的具体类,以使生活更轻松,而不必实现抽象类java.net.HttpURLConnection
。
这样我可以覆盖connect()
方法来支持摘要身份验证等。