태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

Java-HTTPS 통신 (링크)

 

 

 

  1. http://tjjava.blogspot.kr/2012/03/https.html
  2. http://java2go.net/blog/197

 

 

 

  • 간단한 예제
    • HTTPS Client 프로그램입니다.
    • 물론 아래의 예제를 사용하면 인증서 관련 에러가 발생될 수 있습니다.
    • 이에 관련하여 아래의 포스팅을 참고해 주세요.
      package foo;
      
      import java.net.URL;
      import java.io.*;
      import javax.net.ssl.HttpsURLConnection;
      
      public class JavaHttpsExample
      {
        public static void main(String[] args)
        throws Exception
        {
          String httpsURL = "https://your.https.url.here/";
          URL myurl = new URL(httpsURL);
          HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection();
          InputStream ins = con.getInputStream();
          InputStreamReader isr = new InputStreamReader(ins);
          BufferedReader in = new BufferedReader(isr);
      
          String inputLine;
      
          while ((inputLine = in.readLine()) != null)
          {
            System.out.println(inputLine);
          }
      
          in.close();
        }
      }

 

출처: http://alvinalexander.com/blog/post/java/simple-https-example

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

Java-HTTPS 주소의 파일 다운로드

 

 

HTTPS 건 HTTP건 일반적인 환경에서 URL 접속은 대게 아래와 같이 사용하고 있습니다.

    URL url = new URL("https://hostname:port/file.txt");
    URLConnection connection = url.openConnection();
    InputStream is = connection.getInputStream();
    // .. then download the file

 

 

하지만 HTTPS 환경에서는 server 인증서가 없거나 지정하지 않을 경우 아래와 같은 오류를 만나게 됩니다.

    avax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target ......... ........... ..........

 

 

그렇기 때문에 인증서가 있다면 인증서의 위치를 지정해줘야 하지만, 인증서가 없을 경우에는 아래와 같이 작성해서 사용할 수 있습니다.

    // Create a new trust manager that trust all certificates
    TrustManager[] trustAllCerts = new TrustManager[]{
        new X509TrustManager() {
            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                return null;
            }
            public void checkClientTrusted(
                java.security.cert.X509Certificate[] certs, String authType) {
            }
            public void checkServerTrusted(
                java.security.cert.X509Certificate[] certs, String authType) {
            }
        }
    };
    
    // Activate the new trust manager
    try {
        SSLContext sc = SSLContext.getInstance("SSL");
        sc.init(null, trustAllCerts, new java.security.SecureRandom());
        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
    } catch (Exception e) {
    }
    
    // And as before now you can use URL and URLConnection
    URL url = new URL("https://hostname:port/file.txt");
    URLConnection connection = url.openConnection();
    InputStream is = connection.getInputStream();
    // .. then download the file

 

 

 

이 방법이 해답은 아니며, HTTPS 프로토콜을 사용한다면 서버의 인증서를 지정하는 방식을 사용하는 것을 권합니다.

 

 

출처: http://stackoverflow.com/questions/10135074/download-file-from-https-server-using-java


기타 HTTPS 파일 다운로드 예제

http://www.mkyong.com/java/java-https-client-httpsurlconnection-example/



신고
크리에이티브 커먼즈 라이선스
Creative Commons License

MySQL-Concat 사용 시 한글 깨짐 현상

 

MYSQL을 사용 시 CONCAT 을 사용할 때 한글 깨짐 현상.

 

 

* 테이블 A 가 있습니다.

* 컬럼 colA, colB 가 있습니다.

* 컬럼 colA = varchar, colB = number 입니다.

 

두 개의 컬럼은 서로 유형이 다릅니다.

 

SELECT colA, colB FROM A; 

 

정상 출력 됩니다.

 

SELECT CONCAT(colA, colB) FROM A;

 

출력 시 한글이 깨지게 됩니다.(일부 툴에서는 정상적으로 출력됨을 확인)

 

해결방법

CONCAT 을 할 때, number 유형이나 각기 다른 유형의 컬럼을 합치고자 할 때 CAST 를 해주시면 됩니다.

 

SELECT CONCAT(colA, CAST(colB AS CHAR)) FROM A;

 

 

 

참고사이트: http://srzero.tistory.com/entry/Mysql-Concat-%ED%95%9C%EA%B8%80%EA%B9%A8%EC%A7%90

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
|  1  |  2  |  3  |  4  |  5  |  ···  |  79  |


티스토리 툴바