Java 使用HttpURLConnection的Https网站
我有一个关于使用https web服务的Java 使用HttpURLConnection的Https网站,java,android,https,httpurlconnection,httpsurlconnection,Java,Android,Https,Httpurlconnection,Httpsurlconnection,我有一个关于使用https web服务的HttpUrlConnection的问题 基本上,我们之前编写了一组web服务,用于Android应用程序,这些应用程序都是http调用。我们希望将这些更改为使用https。基本上,我关心的是,我现有的代码能否正常工作?我以前创建过如下连接: HttpURLConnection myConnection = (HttpURLConnection) myURL.openConnection(); myConnection.setConnectTimeout(
HttpUrlConnection
的问题
基本上,我们之前编写了一组web服务,用于Android应用程序,这些应用程序都是http调用。我们希望将这些更改为使用https。基本上,我关心的是,我现有的代码能否正常工作?我以前创建过如下连接:
HttpURLConnection myConnection = (HttpURLConnection) myURL.openConnection();
myConnection.setConnectTimeout(TIMEOUT_MILLISEC);
myConnection.connect();
这似乎可以与新的https web服务配合使用,但我想知道为什么不需要将其更改为以下内容:
HttpsURLConnection myConnection = (HttpsURLConnection) myURL.openConnection();
myConnection.setConnectTimeout(TIMEOUT_MILLISEC);
myConnection.setSSLSocketFactory(createSSLSocketFactory());
myConnection.connect();
我仍在计划改用HttpsURLConnection
,但我很好奇我们的应用程序的旧版本会受到预期更改的影响
谢谢你的帮助 在文档中,您将发现:
在带有“https”方案的URL上调用openConnection()将返回
httpsurl连接
但由于HttpsUrlConnection是从HttpUrlConnection扩展而来的,因此以下代码:
HttpURLConnection myConnection = (HttpURLConnection) myURL.openConnection();
如果url用于https连接,则不会导致类强制转换异常。您仍然可以强制转换到HttpsUrlConnection-为了安全起见,您可以使用
instanceof
检查url方案是否应该更改。这完全是我预期的结果,但由于某些原因,它不是,尽管url发生了更改,但它似乎仍然有效。。。我不知道WS是否有可能不是一个“真正的”https web服务,但现在我只是在猜测。作为提示,使用AndroidStudio,您可以进入Net.newConnection()
,查看它的实际功能。很好,感谢您的帮助。我将推出一个更新,但很高兴知道我将不需要强制对较老的应用程序版本用户进行更新。