使用HttpsURLConnection时默认为HttpsURLConnectionOLDImpl异常ClassCastException
一、问题描述:
在测试环境是可以正常的发送到指定的https地址上,而在生产环境上访问时会抛出以下错误:
java.lang.ClassCastException:com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnectionOLDImpl cannot be case to javax.net.ssl.HttpsURLConnection.
二、问题分析:(有待补充)
几乎同样的问题出现在CSDN的帖子中,没什么有用的回答:
http://bbs.csdn.net/topics/380110416
三、问题解决:
谷歌中找到一篇相关的文章:
http://stackoverflow.com/questions/3038026/using-java-class-httpsurlconnection
并从中找到解决方法:
java.net.URL wsURL = new URL(null, url,new sun.net.www.protocol.https.Handler());
四、扩展延伸:
另外,百度到几篇相关的文章:
http://xmuzyq.iteye.com/blog/1162688
http://java.chinaitlab.com/base/821109.html
JDK的api说明:java.net.URL(String protocol, String host, int port, String file)
五、备注:
感谢互联网、强大的群众智慧
相关推荐
在Android中,实现多图上传通常涉及到MultipartEntityBuilder或RequestBody的使用,将图片转换为Base64编码或File对象,然后作为请求体的一部分发送出去。 为了封装网络请求,开发者可能创建了一个网络访问的工具类...
使用`HttpsURLConnection`的基本步骤如下: 1. **建立连接**: - 创建`URL`对象,表示目标HTTPS地址。 - 调用`URL.openConnection()`方法,返回一个`HttpURLConnection`对象。由于目标是HTTPS,所以实际上返回的...
为了进行证书验证,可以使用系统默认的`TrustManager`: ```java URL url = new URL("https://example.com"); HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection(); // 使用系统默认的...
本篇文章将深入探讨如何使用`HttpsURLConnection`来正确地发送和接收含有中文字符的信息。我们将讨论可能遇到的错误、原因以及解决方法。 首先,`HttpsURLConnection`是Java提供的一个类,用于通过HTTPS协议进行...
为了调试或测试目的,开发者可能需要绕过默认的证书验证机制,例如在使用自签名证书的服务器上。这时,可以通过创建自定义的TrustManager并设置到HttpsURLConnection中,以接受特定的证书。但这仅限于测试环境,因为...
POST请求需要设置请求方法为`POST`,默认是`GET`。 ```java connection.setRequestMethod("POST"); ``` 3. **启用输出流**: 发送POST请求需要写入请求体,所以要设置`setDoOutput(true)`。 ```java connection...
在使用 HttpsURLConnection 类时,需要初始化 X509TrustManager 中的 SSLContext,以便 javax.net.ssl.HttpsURLConnection 设置默认的 SocketFactory 和 HostnameVerifier。代码中,需要创建一个 myX509TrustManager...
在本篇文章中,我们将通过一个实例来讲解如何使用 HttpsURLConnection 上传文件流。 知识点 1: HttpsURLConnection 的基本使用 HttpsURLConnection 是 Java 中的一个类,继承自 URLConnection 类,提供了 HTTPS ...
3. **设置请求方法**:默认情况下,`HttpURLConnection`代表GET请求,但我们可以使用`setRequestMethod()`方法设置为POST。 ```java connection.setRequestMethod("POST"); ``` 4. **设置请求属性**:设置必要的请求...
HttpsUrlConnection android网络请求类 当然还有HttpUrlConnection对应http请求,下面以百度首页为例进行请求 写一个GET请求工具类 public class NetUtlis { public static String SendUrlRequest(String s){ ...
在使用Https请求时,需要注意SSL验证的实现,否则会出现SSL握手错误。在这里,我们使用了MyX509TrustManager来验证SSL证书,该类继承自X509TrustManager,并覆盖了checkClientTrusted和checkServerTrusted方法来实现...
导语:个人对网络连接接触的不多,在使用时自己发现一些问题,记录一下。 正文:我在使用HttpURLConnection.getResponseCode()的时候直接报错是IOException错误,responseCode = -1。一直想不明白,同一个程序我调用...
封装的过程中,需要考虑到网络异常、超时、解析错误等各种可能的情况,使用try-catch语句捕获并处理异常,给出相应的错误信息。 6. 使用示例 创建一个`HttpRequest`类,将上述步骤抽象成方法,然后在实际应用中,...
项目里包含一个访问tomcat 的https连接和访问普通url(www.google.com)的https连接 一定记得配置tomcat支持https 配置过程很容易 我的博客转载了方法 还有亲测jdk1.7 tomcat7.0可以
它通过使用SSL/TLS(Secure Sockets Layer/Transport Layer Security)加密技术,确保了数据在客户端和服务器之间的传输过程是私密且不可篡改的。然而,在使用HTTPS时,可能会遇到各种验证问题,如`javax.net.ssl....
使用`HttpsURLConnection`或Apache HttpClient等库建立连接,设置请求方法(如GET或POST),然后发送请求。例如,使用`HttpsURLConnection`: ```java URL url = new URL("https://yourwebservicelink"); ...
当使用自签名证书或私有CA签发的证书时,Java默认不会信任这些证书,因此需要进行额外的配置。 以下是一步步实现Java根证书认证的过程: 1. **创建根证书**:使用OpenSSL等工具生成自签名根证书。这涉及到生成私钥...
当Kettle尝试访问一个通过HTTPS协议提供服务的RESTful API时,如果服务器使用的是自签名证书或者非信任机构颁发的证书,那么默认情况下,Kettle会拒绝与这样的服务器建立连接,因为它无法验证服务器的身份。...
3. **发送请求和接收响应**:在发送请求时,可以使用`connection.getOutputStream()`写入请求体;读取响应则通过`connection.getInputStream()`。例如,对于POST请求: ```java try(OutputStream os = connection....