Https网站使用HttpURLConnection

时间:2016-01-26 22:19:41

标签: java android https httpurlconnection httpsurlconnection

我有一个关于将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,但我很好奇我们的应用程序的旧版本会受到我们预期更改的影响。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

HttpUrlConnection的文档中,您会找到:

  

使用“https”方案在URL上调用openConnection()将返回   一个HttpsURLConnection

但是因为HttpsUrlConnection从HttpUrlConnection扩展,所以这段代码:

HttpURLConnection myConnection = (HttpURLConnection) myURL.openConnection();
如果url用于https连接,

将不会导致类强制转换异常。您仍然可以转换为HttpsUrlConnection - 为了安全起见,您可以使用instanceof检查url方案是否应该更改。