티스토리 뷰

반응형

JAVA HttpsURLConnection jsp example


아래 페이지명은 transport.jsp이며 샘플소스임

Ajax호출 시 url을 위 페이지로 호출

데이터에 파라미터와 url을 넘겨 통신하는 구조~!~!


<%@page trimDirectiveWhitespaces="true"%>

<%@page language="java" contentType="text/html;charset=utf-8" %>

<%@ page import="java.io.*"  %>

<%@ page import="java.net.*"  %>

<%@ page import="javax.net.ssl.*" %>


<%@page import="java.io.BufferedReader" %>

<%@page import="java.io.InputStreamReader" %>

<%@page import="java.io.OutputStreamWriter" %>

<%@page import="java.net.HttpURLConnection" %>

<%@page import="java.net.URL" %>

<%



org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger("transport.jsp");

String xmlString  = request.getParameter("xmlString");

String paramUrl = request.getParameter("url");

String inputLine = null;

    try{


    URL url = new URL(paramUrl);

        

        HttpURLConnection http = null;

        

        if (url.getProtocol().toLowerCase().equals("https")) {

            trustAllHosts();

            HttpsURLConnection https = (HttpsURLConnection) url.openConnection();

            https.setHostnameVerifier(DO_NOT_VERIFY);

            http = https;

         

        System.out.println("#SSL Connet>" + url + "\n" + xmlString);

        } else {

            http = (HttpURLConnection) url.openConnection();

            System.out.println("#HTTP Connet>" + url + "\n" + xmlString);

        }

        

        http.setDoOutput(true);       

        http.setRequestMethod("POST");      

        http.addRequestProperty("Content-Type", "application/xml; charset=utf-8");       

    OutputStreamWriter wr = new OutputStreamWriter(http.getOutputStream(), "utf-8");   

   

    wr.write(xmlString);   

    wr.flush();   

    BufferedReader in = new BufferedReader(new InputStreamReader(http.getInputStream(),"UTF-8"));

    String result = "";

    while ((inputLine = in.readLine()) != null) {

    result = result + inputLine + "\n";

    }

    String parseXml = result;

    out.println(parseXml);

    //logger.info("\n#Response>" + url + ", result = " + result + "\n" + parseXml);

    System.out.println(parseXml);

    in.close();

    wr.close();

   

    }catch(Exception e) {

        e.printStackTrace();

    }

%>

<%!

private static void trustAllHosts() {

    // Create a trust manager that does not validate certificate chains

    TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {

            public java.security.cert.X509Certificate[] getAcceptedIssuers() {

                    return new java.security.cert.X509Certificate[] {};

            }


            public void checkClientTrusted(

                    java.security.cert.X509Certificate[] chain,

                    String authType)

                    throws java.security.cert.CertificateException {

                // TODO Auto-generated method stub

               

            }


            public void checkServerTrusted(

                    java.security.cert.X509Certificate[] chain,

                    String authType)

                    throws java.security.cert.CertificateException {

                // TODO Auto-generated method stub

               

            }

    } };


    // Install the all-trusting trust manager

    try {

            SSLContext sc = SSLContext.getInstance("TLS");

            sc.init(null, trustAllCerts, new java.security.SecureRandom());

            HttpsURLConnection

                            .setDefaultSSLSocketFactory(sc.getSocketFactory());

    } catch (Exception e) {

            e.printStackTrace();

    }

}


final static HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() {

    public boolean verify(String hostname, SSLSession session) {

        return true;

    }

};

%>




끗!@#!@#


반응형