Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用HttpURLConnection的Https网站_Java_Android_Https_Httpurlconnection_Httpsurlconnection - Fatal编程技术网

Java 使用HttpURLConnection的Https网站

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(

我有一个关于使用https web服务的
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()
,查看它的实际功能。很好,感谢您的帮助。我将推出一个更新,但很高兴知道我将不需要强制对较老的应用程序版本用户进行更新。