Volley with https?



我的截击休息有问题。如果URL从HTTP它工作并得到一个响应,但如果从HTTPS,它不工作,响应总是服务器错误。我下面的演示,为修复它,但代码是返回空在行:

InputStream clientStream = VolleySampleApplication.getContext().getResources()
                              .openRawResource(R.raw.production_test_client);`

那么如何修复它呢?

试试这个:

                 CertificateFactory cf = CertificateFactory.getInstance("X.509");
             InputStream caInput = getResources().openRawResource(R.drawable.cert);
             Certificate ca;
             try {
                 ca = cf.generateCertificate(caInput);
                 System.out.println("ca=" + ((X509Certificate) ca).getSubjectDN());
             } finally {
                 caInput.close();
             }
             String keyStoreType = KeyStore.getDefaultType();
             KeyStore keyStore = KeyStore.getInstance(keyStoreType);
             keyStore.load(null, null);
             keyStore.setCertificateEntry("ca", ca);
             String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
             TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
             tmf.init(keyStore);
             SSLContext context = SSLContext.getInstance("TLS");
             context.init(null, tmf.getTrustManagers(), null);
            mRequestQueue =Volley.newRequestQueue(getApplicationContext(), new HurlStack(null, context.getSocketFactory()));

对我来说这是可行的,我不知道这是不是最好的方法,但是可以帮助你。

o解决移动(可能性):

在我的朋友的指导下:D,响应https,在测试中使用工具fiddler (http://www.telerik.com/fiddler),使用fiddler> (http://www.blogs.progotik.com/using- fiddler-to-make-a-post-request/)

如何检查fiddler,例如https我的域名是https: mydomain.com:

  1. 点击https://facebook.com, https://google.com使用提琴的响应是200
  2. 点击https: mydomain.com响应是502错误网关
  3. 响应命中http://api.mydomain.com 200
  4. http://mydomain。tk是响应200
  5. 根据我和朋友的对话,https: mydomain.com的可能性需要重新设置
  6. 我通过谷歌搜索,我找到了一个解决方案>> https://www.ssllabs.com/ssltest/analyze.html
  7. 我输入https: mydomain.com,等待,然后看到握手模拟
  8. chipersuasion不兼容android 4.4.4及以下版本
  9. 然后我降低了设置chi劝说在mydomain.com和它的解决方案

最新更新