从浏览器可以访问https://www.sun.com
可是运行下面一段代码时却出现错误,请问是什么原因?用URL如何返回HTTPS网页的内容?
URL url = new URL("https://www.sun.com");
url.openStream();
可是运行下面一段代码时却出现错误,请问是什么原因?用URL如何返回HTTPS网页的内容?
URL url = new URL("https://www.sun.com");
url.openStream();
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.connect();
InputStream is=conn.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String line="";
while((line=br.readLine())!=null){
System.out.println(line);
}
br.close();
is.close();
conn.disconnect();
import java.io.*;main(String[] argv)throws Exception{
//....}
javax.net.ssl.SSLException: untrusted server cert chain
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.a(DashoA6275)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(DashoA6275)
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(DashoA6275)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(DashoA6275)
at java.io.OutputStream.write(OutputStream.java:61)
不知道你测试运行过没有,我将你的代码放在JSP中运行,就报上面这样的错
<%@ page import="java.io.*" %>
<%@ page import="java.net.*" %>
<html>
<head>
<title>
test
</title>
</head>
<body bgcolor="#ffffff">
<%
URL url = new URL("https://www.sun.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.connect();
InputStream is=conn.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String line="";
while((line=br.readLine())!=null){
System.out.println(line);
}
br.close();
is.close();
conn.disconnect();%>
<h1>
JBuilder Generated JSP
</h1>
</body>
</html>
--------------------------------------------
偶在jbuilder下测试jsp也没问题..祝你好运啦呵呵
服务器的证书不被信任把服务器的证书import到%JAVE_HOME%\jre\lib\security\cacerts中或者import到别的文件中,然后用-Djavax.net.ssl.trustStore=yourTrustStore -Djavax.net.ssl.trustStorePassword=yourTrustStorePassword指定trustStore的
文件路径及密码
访问URL url = new URL("https://www.sun.com")的问题已解决!
但是我配置了自己的tomcat可以访问SSL以后,在IE中可以访问
https://192.168.0.27:8443/test.html
可是在JSP文件中运行如下代码时,又出错了:
URL url = new URL( "https://192.168.0.27:8443/test.html" );
url.openStream();
错误信息是:
java.io.IOException: HTTPS hostname wrong: should be <192.168.0.27>, but cert says
at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a(DashoA6275)
at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a(DashoA6275)
at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a(DashoA6275)
at com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnection.connect(DashoA6275)
at com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnection.getInputStream(DashoA6275)
at java.net.URL.openStream(URL.java:798)
http://www.ee2ee.com/tech_art/5/53.html
我怎么打不开? 说让设置SETDOOUTPUT(TRUE),我设了还不行