자바 Https 어플리케이션 통신 (SSL)
자바 Https 어플리케이션 통신 (SSL)
http 일 경우는 비교적 쉽게 자바로 http 통신을 할 수 있으나
https인 경우는 http와 비슷하나 아래 처럼 추가적으로 코딩을 더 해줘야 한다.
String sUrl="http://aa/update.do?emp=aa";
TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager(){
@Override
public X509Certificate[] getAcceptedIssuers(){
return null;
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException{
}
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException{
}
}};
try{
SSLContext sc=SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
}catch(Exception e){
}
HostnameVerifier hv=new HostnameVerifier(){
@Override
public boolean verify(String urlHostname, SSLSesstion session){
return true;
}
};
URL targetURL=new URL(sURL+para);
URLConnection urlConn = targetURL.openConnection();
HttpsURLConnection conn=(HttpsURLConnection) urlConn;
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setHostnameVerifier(hv);
DataOutputStream out=null;
InputStream is=null;
BufferedReader br=null;
try{
out=new DataOutputStream(conn.getOutputStream());
out.flush();
is=conn.getInputStream();
br=new BufferedReader(new InputStreamReader(is));
String inputLine;
String result="";
while((inputLine=br.readLine())!=null){
inputLine=inputLine.trim();
result=inputLine;
}
}catch(Exception e){
}