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

HttpsURLConnection 을 이용한 Https(SSL)통신

글쓴이 : 개발자신종진 날짜 : 2015-01-13 (화) 13:03 조회 : 11782
글주소 : 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
  보드게임 보드게임몰
보드게임,다양한 보드게임,공동구매,리퍼상품,체험단,3% 할인쿠폰,사은품증정
boardgamemall.co.kr
  유아완구의 모든것 잼토이즈
아이들 취향 저격하는 만화 캐릭터 상품 다수! 잼토이즈 완구로 잼있게 놀자!
gemtoys.co.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 163
1104 강좌  100 Days Google Dev, 3: Google Play Services 7.5 StanleyKou 01-24 1 949
1103 강좌  100 Days Google Dev, 2: The Magic of LRU Cache StanleyKou 01-20 0 906
1102 강좌  100 Days Google Dev, 1: Android Design Support Library 2 StanleyKou 01-18 0 1042
1101 TIP&TECH  리스트뷰에서 스위치,체크박스사용시 5 에찌 05-08 5 2607
1100 TIP&TECH  뷰(RecyclerView/...)에 Max Height 주기/[Android] 김병희라고요 04-26 0 2313
1099 TIP&TECH  TabLayout ClickEvent 에찌 04-21 1 2092
1098 TIP&TECH  현재 사용하고 있는 어플 foreground인지 backgroun… 4 에찌 04-14 2 3142
1097 TIP&TECH  안드로이드 Drawble 에 해상도 마다 이미지를 … 1 에찌 04-14 1 2100
1096 TIP&TECH  fragment 에서 ButterKnife 사용 시 resource가져올 때… 1 에찌 04-12 0 1684
1095 TIP&TECH  Youtube 및 facebook 동영상 업로드 할때 1 희망과꿈을 03-28 0 2165
1094 TIP&TECH  google service lib 가져올 때 3 에찌 03-20 3 2170
1093 소스코드  CentralRV 프로젝트 - RecyclerView 가로/세로 가운… 1 김병희라고요 01-30 2 3825
1092 TIP&TECH  번개검색 시스템/[Android] 2 김병희라고요 12-29 2 2690
1091 TIP&TECH  RecyclerView 특정 포지션으로 스크롤 - smoothScroll… 1 김병희라고요 12-12 1 2755
1090 강좌  왕앱따 107. 자바/C++ 파일읽기 속도 비교/[Androi 김병희라고요 11-26 0 2814
1089 강좌  왕앱따 106. C++ 동영상 강좌/[Android] 김병희라고요 11-23 0 3351
1088 소스코드  AOSP용 한글 키보드 입력키 엘카이저 11-17 1 3191
1087 강좌  addDrawerListener, setDrawerListener(deprecated)/[Android] 김병희라고요 11-02 2 3365
1086 강좌  왕앱따 103. 아이콘 반복클릭 테스트/[Android] 김병희라고요 11-01 0 2563
 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 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기