如何使用java从带有参数的url http获取html内容

如何使用java从带有参数的url http获取html内容,java,Java,对此url“”将提供3个参数,以获得结果,但我无法获得结果,因为它没有与页面建立连接。我试过很多方法,但都没有成功。 形成的url如下所示: "" 其中: nroRuc=是文件编号 codigo=会话的验证码,该代码会发生变化 tipdoc=文档类型 这是我使用的代码 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputSt

对此url“”将提供3个参数,以获得结果,但我无法获得结果,因为它没有与页面建立连接。我试过很多方法,但都没有成功。 形成的url如下所示: "" 其中:

  • nroRuc=是文件编号
  • codigo=会话的验证码,该代码会发生变化
  • tipdoc=文档类型
这是我使用的代码

 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.security.KeyManagementException;
 import java.security.NoSuchAlgorithmException;
 import java.security.SecureRandom;
 import javax.net.ssl.HostnameVerifier;
 import javax.net.ssl.HttpsURLConnection;
 import javax.net.ssl.SSLContext;
 import javax.net.ssl.SSLSession;
 import javax.net.ssl.TrustManager;
 import javax.net.ssl.X509TrustManager;



public class ConsultaRuc {

private static boolean isSslInitialized = false;
private static final String PROTOCOL = "SSL";
public static boolean ACCEPT_ALL_CERTS = true;

public static void initializeSSLConnection() {
    if (!isSslInitialized) {
        if (ACCEPT_ALL_CERTS) {
            initInsecure();
        } else {
            initSsl();
        }
    }
}

private static void initInsecure() {
    TrustManager[] trustAllCerts = new TrustManager[]{
        new X509TrustManager() {

            @Override
            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                return null;
            }

            @Override
            public void checkClientTrusted(
                    java.security.cert.X509Certificate[] certs, String authType) {
            }

            @Override
            public void checkServerTrusted(
                    java.security.cert.X509Certificate[] certs, String authType) {
            }
        }
    };

    // Install the all-trusting trust manager
    try {
        SSLContext sc = SSLContext.getInstance(PROTOCOL);
        sc.init(null, trustAllCerts, new java.security.SecureRandom());
        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
    } catch (Exception e) {
        e.printStackTrace();
    }
    HttpsURLConnection.setDefaultHostnameVerifier(
            new HostnameVerifier() {

                @Override
                public boolean verify(String string, SSLSession ssls) {
                    return true;
                }
            });
    isSslInitialized = true;
}

private static void initSsl() {
    SSLContext sc = null;
    try {
        sc = SSLContext.getInstance(PROTOCOL);
    } catch (NoSuchAlgorithmException ex) {
        throw new RuntimeException(ex);
    }
    try {
        sc.init(null, null, new SecureRandom());
    } catch (KeyManagementException ex) {
        throw new RuntimeException(ex);
    }
    HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
    HostnameVerifier hv = new HostnameVerifier() {

        @Override
        public boolean verify(String urlHostName, SSLSession session) {
            /* This is to avoid spoofing */
            return (urlHostName.equals(session.getPeerHost()));
        }
    };

    HttpsURLConnection.setDefaultHostnameVerifier(hv);
    isSslInitialized = true;
}


public static void main(String[] args) throws IOException{
    ConsultaRuc.initializeSSLConnection();

    String httpsURL = "http://www.sunat.gob.pe/cl-ti-itmrconsruc/jcrS00Alias?accion=consPorRuc&nroRuc=20559530744&codigo=IBUG&tipdoc=1";
    URL myurl = new URL(httpsURL);
    HttpURLConnection con = (HttpURLConnection) myurl.openConnection();

    con.setRequestMethod("GET");
    con.setDoInput(true);
    con.setDoOutput(true);
    con.setUseCaches(false);

    InputStream ins = con.getInputStream();  //breaks here
    InputStreamReader isr = new InputStreamReader(ins);
    BufferedReader in = new BufferedReader(isr);

    String inputLine;

    while ((inputLine = in.readLine()) != null) {
        System.out.println(inputLine);
    }

    in.close();
}

}

是消息还是错误?它抛出同一网页的错误消息:“按ruc编号处理查询时出现问题”。我可以得到页面的内容,但那个抛出错误的页面。