如果 有Redirect, 如何得到Redirect后的URL, 好象getURL不可以啊...请高手指点一下..

解决方案 »

  1.   

    我是这样用的,没有什么证书不证书的呀,至少我下面的写法没出现过楼主的问题 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());
    }
      

  2.   

    URL u = new URL("https://172.16.250.201/rkt20sp22");因为你访问的https的连接,但是程序跟服务器又没有证书的交互,所以出问题了。不过我也不知道解决的办法
      

  3.   

    你必须写一个专用的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();这样以后就可以正常的访问服务器上面的操作了
      

  4.   

    上面其实是有两步,第一个是通过setSSLSocketFactory来确保使用我自定义的AllowTrustManager 来信任服务器上面的证书第二是HostnameVerifier,由于你的证书声明的机器名或者会与实际访问中使用的机器名(使用IP是不合法的)时候,信任你的证书