从浏览器可以访问https://www.sun.com
可是运行下面一段代码时却出现错误,请问是什么原因?用URL如何返回HTTPS网页的内容?
URL url = new URL("https://www.sun.com");
url.openStream();

解决方案 »

  1.   

    找一下XMLHTTP对象的文档,能从网页上读取数据
      

  2.   

    看看java.net.HttpURLConnection类的文档。
      

  3.   

    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();
      

  4.   

    import java.net.*;
    import java.io.*;main(String[] argv)throws Exception{
    //....}
      

  5.   

    总是报下面这样的错呀:
    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)
      

  6.   

    to zealVampire(蚊子+鹤舞白沙):
    不知道你测试运行过没有,我将你的代码放在JSP中运行,就报上面这样的错
      

  7.   

    不好意思 我直接在一个main测试d...
      

  8.   

    <%@ page contentType="text/html; charset=GBK" %>
    <%@ 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也没问题..祝你好运啦呵呵
      

  9.   

    >javax.net.ssl.SSLException: untrusted server cert chain<
    服务器的证书不被信任把服务器的证书import到%JAVE_HOME%\jre\lib\security\cacerts中或者import到别的文件中,然后用-Djavax.net.ssl.trustStore=yourTrustStore -Djavax.net.ssl.trustStorePassword=yourTrustStorePassword指定trustStore的
    文件路径及密码
      

  10.   

    SSL在j2se1.4以后的版本才可以用.
      

  11.   

    谢谢0xCafeBabe(CafeBabe)!
    访问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)
      

  12.   

    看看这篇文章
    http://www.ee2ee.com/tech_art/5/53.html
      

  13.   

    URL 打开的地址, 除了能打开输入流..还能同时打开输出流吗?
    我怎么打不开? 说让设置SETDOOUTPUT(TRUE),我设了还不行