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