반응형
HTTPS url을 그냥 전송하면 단말기에 따라서는 전송이 실패할 수 있다. 귀찮더라도 확실하게 하려면 아래처럼...
import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; // . . . // always verify the host - dont check for certificate final static HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() { public boolean verify(String hostname, SSLSession session) { return true; } }; /** * Trust every server - don't check for any certificate */ 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[] {}; } @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws 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(); } } public static HttpsURLConnection postHttps(String url, int connTimeout, int readTimeout) { trustAllHosts(); HttpsURLConnection https = null; try { https = (HttpsURLConnection) new URL(url).openConnection(); https.setHostnameVerifier(DO_NOT_VERIFY); https.setConnectTimeout(connTimeout); https.setReadTimeout(readTimeout); } catch (MalformedURLException e) { e.printStackTrace(); return null; } catch (IOException e) { e.printStackTrace(); return null; } return https; }
출처 : http://sizuha.wikispaces.com/Android+HTTPS+post
반응형
'Android' 카테고리의 다른 글
안드로이드에서 SSL통신 (0) | 2012.04.16 |
---|---|
Android 이메일&MMS 로 이미지 파일 첨부 보내기 (0) | 2011.10.21 |
Android 미디어스캔 (0) | 2011.10.21 |
Android에서 C2DM 사용하기 (0) | 2011.10.19 |
버튼에 이미지와 텍스트 (0) | 2011.10.17 |