Note that there are some explanatory texts on larger screens.

plurals
  1. POClient Server communication over https using xml in android
    text
    copied!<p>This is the first time i am trying this. Can somebody pls share some bit of code which would help me doing this.</p> <p>Any help would be appreciated.</p> <h2>Initial Attempt</h2> <p>hi,</p> <p>I am trying to write code that will do client-server comm over https.</p> <p>The code snippet(Mostly from different forums) for what i did is as under:</p> <p>_FakeX509TrustManager.allowAllSSL();</p> <p>The code for allowAllSSL() is</p> <p>public static void allowAllSSL() { HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {</p> <pre><code> public boolean verify(String hostname, SSLSession session) { // TODO Auto-generated method stub return false; } }); SSLContext context = null; if (trustManagers == null) { trustManagers = new TrustManager[] { new _FakeX509TrustManager() }; } try { context = SSLContext.getInstance("TLS"); context.init(null, trustManagers, new SecureRandom()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (KeyManagementException e) { e.printStackTrace(); } HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory()); </code></pre> <p>}</p> <p>Also in the main activity the code after the above is:</p> <p>HttpPost post = new HttpPost(new URI(eText.getText().toString())); post.setEntity(new StringEntity("test"));</p> <pre><code> KeyStore trustStore = KeyStore.getInstance("JKS"); TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); InputStream trustStoreStream = getBaseContext().getResources().openRawResource(R.raw.mytruststore); trustStore.load(trustStoreStream, "test1234".toCharArray()); trustManagerFactory.init(trustStore); // Setup keystore KeyStore keyStore = KeyStore.getInstance("JKS"); KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); InputStream keyStoreStream = getBaseContext().getResources().openRawResource(R.raw.mykeystore); keyStore.load(keyStoreStream, "test1234".toCharArray()); keyManagerFactory.init(keyStore, "test1234".toCharArray()); SSLSocketFactory sslf = new SSLSocketFactory(keyStore); sslf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); SchemeRegistry schemeRegistry = new SchemeRegistry(); schemeRegistry.register(new Scheme ("https", sslf, 443)); SingleClientConnManager cm = new SingleClientConnManager(post.getParams(), schemeRegistry); HttpClient client = new DefaultHttpClient(cm, post.getParams()); HttpResponse result = client.execute(post); </code></pre> <p>I have generated the JKS Keystore and Truststore files and kept it under /res/raw folder in my app.</p> <p>The error which i get here is :</p> <p>W/System.err( 358): java.security.KeyStoreException: KeyStore JKS implementation not found W/System.err( 358): at java.security.KeyStore.getInstance(KeyStore.java:134) W/System.err( 358): at com.msi.getwebpage.GetWebPage$2.onClick(GetWebPage.java:93) W/System.err( 358): at android.view.View.performClick(View.java:2408) W/System.err( 358): at android.view.View$PerformClick.run(View.java:8816) W/System.err( 358): at android.os.Handler.handleCallback(Handler.java:587) W/System.err( 358): at android.os.Handler.dispatchMessage(Handler.java:92) W/System.err( 358): at android.os.Looper.loop(Looper.java:123) W/System.err( 358): at android.app.ActivityThread.main(ActivityThread.java:4627) W/System.err( 358): at java.lang.reflect.Method.invokeNative(Native Method) W/System.err( 358): at java.lang.reflect.Method.invoke(Method.java:521) W/System.err( 358): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) W/System.err( 358): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) W/System.err( 358): at dalvik.system.NativeStart.main(Native Method)</p> <p>Any idea why am i getting this error?</p> <p>Also if i am trying to change the KeyStore instance to BKS i am getting the error as:</p> <p>W/System.err( 387): java.io.IOException: Wrong version of key store. W/System.err( 387): at org.bouncycastle.jce.provider.JDKKeyStore.engineLoad(JDKKeyStore.java:839) W/System.err( 387): at java.security.KeyStore.load(KeyStore.java:676) W/System.err( 387): at com.msi.getwebpage.GetWebPage$2.onClick(GetWebPage.java:96) W/System.err( 387): at android.view.View.performClick(View.java:2408) W/System.err( 387): at android.view.View$PerformClick.run(View.java:8816) W/System.err( 387): at android.os.Handler.handleCallback(Handler.java:587) W/System.err( 387): at android.os.Handler.dispatchMessage(Handler.java:92) W/System.err( 387): at android.os.Looper.loop(Looper.java:123) W/System.err( 387): at android.app.ActivityThread.main(ActivityThread.java:4627) W/System.err( 387): at java.lang.reflect.Method.invokeNative(Native Method) W/System.err( 387): at java.lang.reflect.Method.invoke(Method.java:521) W/System.err( 387): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) W/System.err( 387): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) W/System.err( 387): at dalvik.system.NativeStart.main(Native Method)</p> <p>This is probably because i have kept the jks keystore and truststore files under /res/raw folder in my app.(just a guess).</p> <p>Please let me know how can i generate a BKS keystore and truststore file.</p> <p>Or is their any other way that i can try to make this code snippet working. Thanks!!</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload