使用HttpURLConnection如何处理安全警告? 如果 有Redirect, 如何得到Redirect后的URL, 好象getURL不可以啊...请高手指点一下.. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我是这样用的,没有什么证书不证书的呀,至少我下面的写法没出现过楼主的问题 try { ProcessData xmlParse = ProcessData.getInstance(); URL url = new URL(serviceUrl); URLConnection conn = url.openConnection(); conn.setDoOutput(true); conn.setUseCaches(false); String inStream = xmlParse.dataToStream(ds);//我自定义的XML流 :) 可以不看 ObjectOutputStream out = new ObjectOutputStream(conn.getOutputStream()); out.writeObject(inStream); ObjectInputStream in = new ObjectInputStream(conn.getInputStream()); String outStream = (String) in.readObject(); dg = xmlParse.streamToData(outStream);//将输出的XML数据解析为对象 :) 可以不看 } catch (IOException io) { io.printStackTrace(); System.out.println(io.getMessage()); } catch (Exception e) { e.printStackTrace(); System.out.println(e.getMessage()); } URL u = new URL("https://172.16.250.201/rkt20sp22");因为你访问的https的连接,但是程序跟服务器又没有证书的交互,所以出问题了。不过我也不知道解决的办法 你必须写一个专用的TrustManager来完成这种不信任的网站访问private static class AllowTrustManager implements X509TrustManager { public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[]{}; }}SSLContext sc = SSLContext.getInstance("SSL");sc.init(null, new TrustManager[]{new AllowTrustManager()}, new java.security.SecureRandom());HttpsURLConnection conn = (HttpsURLConnection) myURL.openConnection();conn.setSSLSocketFactory(sc.getSocketFactory());conn.setHostnameVerifier(new HostnameVerifier() { public boolean verify(String hostname, SSLSession session) { return true; }});conn.connect();这样以后就可以正常的访问服务器上面的操作了 上面其实是有两步,第一个是通过setSSLSocketFactory来确保使用我自定义的AllowTrustManager 来信任服务器上面的证书第二是HostnameVerifier,由于你的证书声明的机器名或者会与实际访问中使用的机器名(使用IP是不合法的)时候,信任你的证书 swing+servlet 使用FCKeditor编辑后的文本格式如何存入数据库 Struts2.0 拦截器出现的问题 数列 lzo 听说这个压缩算法很不错? 谁来帮忙转为java?谢谢! 高分,求助Web项目中Hibernate异常 初学hibernate遇到一个主键问题,各位兄弟帮帮忙! 求vrml+java的实例,谢谢! jms包在那里能够得到. cvs问题请教 现在TOMCAT哪个版本比较新啊?比较稳定啊? 电子商务网站技术讨论及招聘
ProcessData xmlParse = ProcessData.getInstance();
URL url = new URL(serviceUrl);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
conn.setUseCaches(false);
String inStream = xmlParse.dataToStream(ds);//我自定义的XML流 :) 可以不看
ObjectOutputStream out = new ObjectOutputStream(conn.getOutputStream());
out.writeObject(inStream);
ObjectInputStream in = new ObjectInputStream(conn.getInputStream());
String outStream = (String) in.readObject();
dg = xmlParse.streamToData(outStream);//将输出的XML数据解析为对象 :) 可以不看
} catch (IOException io) {
io.printStackTrace();
System.out.println(io.getMessage());
} catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
private static class AllowTrustManager implements X509TrustManager {
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
} public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
} public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[]{};
}
}
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, new TrustManager[]{new AllowTrustManager()}, new java.security.SecureRandom());HttpsURLConnection conn = (HttpsURLConnection) myURL.openConnection();
conn.setSSLSocketFactory(sc.getSocketFactory());
conn.setHostnameVerifier(new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
}
});
conn.connect();这样以后就可以正常的访问服务器上面的操作了