我有一个关于将HttpURLConnection myConnection = (HttpURLConnection) myURL.openConnection();
myConnection.setConnectTimeout(TIMEOUT_MILLISEC);
myConnection.connect();
与https网络服务一起使用的问题。
基本上,我们之前编写过一堆Web服务,用于Android应用程序,这些服务都是http调用。我们希望将其更改为使用https。基本上,我所关心的是,我现有的代码是否正常工作?我以前创建过如下连接:
HttpsURLConnection myConnection = (HttpsURLConnection) myURL.openConnection();
myConnection.setConnectTimeout(TIMEOUT_MILLISEC);
myConnection.setSSLSocketFactory(createSSLSocketFactory());
myConnection.connect();
这似乎与新的https网络服务一起正常运行,但我想知道为什么我不需要将其更改为以下内容:
HttpsURLConnection
我仍然计划转而使用tabsetPanels
,但我很好奇我们的应用程序的旧版本会受到我们预期更改的影响。
感谢您的帮助!
答案 0 :(得分:1)
在HttpUrlConnection的文档中,您会找到:
使用“https”方案在URL上调用openConnection()将返回 一个HttpsURLConnection
但是因为HttpsUrlConnection从HttpUrlConnection扩展,所以这段代码:
HttpURLConnection myConnection = (HttpURLConnection) myURL.openConnection();
如果url用于https连接,将不会导致类强制转换异常。您仍然可以转换为HttpsUrlConnection - 为了安全起见,您可以使用instanceof
检查url方案是否应该更改。