sun.net.www.protocol.http.HttpURLConnection cannot be cast to httpClient.HttpsURLConnection

 

URL url = new URL(url);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();

在测试情况下使用如下带面能正常使用,但是到了正常环境下就报

sun.net.www.protocol.http.HttpURLConnection cannot be cast to javax.net.ssl.HttpsURLConnection 的异常

在网上搜索了资料后发现

原因:

在没有对使用的SSL实现类进行配置的情况下,在程序中如果正常使用java.net.URL的不带 URLStreamHandler 参数的构造方法new 一个URL对象的话,url.openConnection()默认是返回sun.net.www.protocol.http.HttpURLConnection 类型对象。所以我们带上一个URLStreamHandler
参数。

解决方法:

URL url =new URL(url);
sun.net.www.protocol.http.HttpURLConnection conn = (sun.net.www.protocol.http.HttpURLConnection) url.openConnection();

特此记录

你可能感兴趣的:(java,httpClient)