총 게시물 1,105건, 최근 0 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[TIP&TECH]

HttpsURLConnection 을 이용한 Https(SSL)통신

글쓴이 : 개발자신종진 날짜 : 2015-01-13 (화) 13:03 조회 : 12117
글주소 : http://www.androidside.com/B56/27358
HttpsURLConnection 을 이용한 Https(SSL)통신 (3.8K), Down : 16, 2015-01-13 13:03:03
 
  서버호스팅추천 아이네트호스팅
100%당첨 서버이벤트! 1시간 퀵서버설치, 무료 보안서비스, 24시간 기술지원
www.inet.co.kr
  건축 리모델링, 상훈이엔씨
리모델링, 상업용건물,호텔,사무용건물 전문. 30년 경력 엔지니어 그룹
sanghoonenc.com
  해외인테리어전문 글로벌디자인
중국, 베트남, 필리핀등 현지법인법인, 현지인허가, 한국본사, 12개월 무이자할부
globaldesign.kr
신청하기


1. URLConnection 설정 
URL url = new URL("--URL 입력--");
(HttpsURLConnection 설정 함수) 실행;
// HttpsURLConnection 설정 =============================================
private static void (HttpsURLConnection 설정 함수)() {
        // 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[]{};
            }

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

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

        // 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();
        }
    }
    //======================================================================
    HttpsURLConnection httpsURLConnection = (HttpsURLConnection) url.openConnection();
    httpsURLConnection.setHostnameVerifier(new HostnameVerifier() {
    public boolean verify(String s, SSLSession sslSession) {
      return true;
      }
    });
    HttpURLConnection connection = httpsURLConnection;
    
2. 통신을 위한 연결 설정

connection.setRequestMethod("POST");
    connection.setDoInput(true);
    connection.setDoOutput(true);

    List<BasicNameValuePair> nameValuePairs = new ArrayList<BasicNameValuePair>(2);
    nameValuePairs.add(new BasicNameValuePair("인자이름1", "인자값1"));
    nameValuePairs.add(new BasicNameValuePair("인자이름2", "인자값2"));
...
    OutputStream outputStream = connection.getOutputStream();
    BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
    bufferedWriter.write(getURLQuery(nameValuePairs));
// Cf. getURLQuery 아래 참조 =============================================
private String getURLQuery(List<BasicNameValuePair> params){
    StringBuilder stringBuilder = new StringBuilder();
        boolean first = true;

        for (BasicNameValuePair pair : params)
        {
            if (first)
                first = false;
            else
                stringBuilder.append("&");

            try {
                stringBuilder.append(URLEncoder.encode(pair.getName(), "UTF-8"));
                stringBuilder.append("=");
                stringBuilder.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }

        return stringBuilder.toString();
    }
// =======================================================================
    bufferedWriter.flush();
    bufferedWriter.close();
    outputStream.close();
    
3. 연결

connection.connect();

4. 서버로부터 받는 결과값 처리

StringBuilder responseStringBuilder = new StringBuilder();
    if (connection.getResponseCode() == HttpURLConnection.HTTP_OK){
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        for (;;){
             String stringLine = bufferedReader.readLine();
             if (stringLine == null ) break;
             responseStringBuilder.append(stringLine + ' ');
        }
        bufferedReader.close();
    }
connection.disconnect();



종합평점 (참여 3명)

추천 버튼을 클릭하면 추천한 자와 추천받은 자 모두에게 포인트가 지급됩니다.

하람비 2015-01-14 (수) 11:23
잘봤습니다
댓글주소
duxoek 2015-05-21 (목) 10:59
잘봤습니다.
댓글주소
안사드 2015-07-02 (목) 18:22
감사합니다.
댓글주소
광균 2015-07-06 (월) 15:01
좋은자료 감사합니다. 
댓글주소
흙왕 2015-11-10 (화) 17:42
잘봤습니다.
댓글주소
치아라 2015-12-19 (토) 13:52
좋은자료 감사합니다.
댓글주소
박카스옹 2016-02-11 (목) 10:20
참고하겠습니다
댓글주소
초밥입니다 2016-02-19 (금) 10:53
참고하겠습니디
댓글주소
닉임 2016-02-26 (금) 17:49
좋은자료 감사합니다.
댓글주소
kmcorps 2016-04-25 (월) 14:26
잘봤습니다.
댓글주소
crum153 2016-05-04 (수) 15:56
잘봤습니다
댓글주소
시기시기 2016-07-20 (수) 14:08

잘봤습니다.~

댓글주소
웅이아범득이 2016-10-14 (금) 21:03
잘봤습니다.
댓글주소
무료회원 2016-12-16 (금) 11:44
좋아요
댓글주소
거너 2017-09-04 (월) 16:26

참고하겠습니다~

댓글주소
퐈리 2017-12-26 (화) 18:18
잘봤습니다.
댓글주소
너부리주름살 2018-06-11 (월) 17:00
thanks
댓글주소
이전글  다음글  목록 글쓰기

총 게시물 1,105건, 최근 0 건 안내 RSS
번호 분류 제목 글쓴이 날짜 추천 조회
1105 소스코드  안드로이드 두더지게임 (랭킹, 두더지 종류 -… 홍훙훙 10-04 0 677
1104 강좌  100 Days Google Dev, 3: Google Play Services 7.5 StanleyKou 01-24 1 1219
1103 강좌  100 Days Google Dev, 2: The Magic of LRU Cache StanleyKou 01-20 0 1173
1102 강좌  100 Days Google Dev, 1: Android Design Support Library 2 StanleyKou 01-18 0 1370
1101 TIP&TECH  리스트뷰에서 스위치,체크박스사용시 5 에찌 05-08 5 3026
1100 TIP&TECH  뷰(RecyclerView/...)에 Max Height 주기/[Android] 김병희라고요 04-26 0 2746
1099 TIP&TECH  TabLayout ClickEvent 에찌 04-21 1 2428
1098 TIP&TECH  현재 사용하고 있는 어플 foreground인지 backgroun… 4 에찌 04-14 2 3696
1097 TIP&TECH  안드로이드 Drawble 에 해상도 마다 이미지를 … 1 에찌 04-14 2 2406
1096 TIP&TECH  fragment 에서 ButterKnife 사용 시 resource가져올 때… 1 에찌 04-12 0 1965
1095 TIP&TECH  Youtube 및 facebook 동영상 업로드 할때 1 희망과꿈을 03-28 0 2471
1094 TIP&TECH  google service lib 가져올 때 3 에찌 03-20 3 2479
1093 소스코드  CentralRV 프로젝트 - RecyclerView 가로/세로 가운… 1 김병희라고요 01-30 2 4372
1092 TIP&TECH  번개검색 시스템/[Android] 2 김병희라고요 12-29 2 2980
1091 TIP&TECH  RecyclerView 특정 포지션으로 스크롤 - smoothScroll… 1 김병희라고요 12-12 1 3147
1090 강좌  왕앱따 107. 자바/C++ 파일읽기 속도 비교/[Androi 김병희라고요 11-26 0 3131
1089 강좌  왕앱따 106. C++ 동영상 강좌/[Android] 김병희라고요 11-23 0 3804
1088 소스코드  AOSP용 한글 키보드 입력키 엘카이저 11-17 1 3644
1087 강좌  addDrawerListener, setDrawerListener(deprecated)/[Android] 김병희라고요 11-02 2 3634
1086 강좌  왕앱따 103. 아이콘 반복클릭 테스트/[Android] 1 김병희라고요 11-01 0 2867
 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  다음  맨끝
 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기