SSLContext Android棉花糖不工作
因此,当我在清单中特别指定targetsdkversion 23时,一切正常,但当我指定targetsdkversion 23时,我无法进行api调用SSLContext Android棉花糖不工作,android,manifest,Android,Manifest,因此,当我在清单中特别指定targetsdkversion 23时,一切正常,但当我指定targetsdkversion 23时,我无法进行api调用 10-28 09:09:40.462: I/System.out(13743): <html><head><title>Request Rejected</title></head><body>The requested URL was rejected. Please co
10-28 09:09:40.462: I/System.out(13743): <html><head><title>Request Rejected</title></head><body>The requested URL was rejected. Please consult with your administrator.<br><br>Your support ID is: 12896453146718027503</body></html>
因此,当我在清单中特别指定targetsdkversion 22时,一切正常,但当我指定targetsdkversion 23时..清单中设置的权限在棉花糖中略有不同。请参阅此项。>这是我已拥有的权限读取\u电话\u状态-1读取\u联系人-1电话\u状态-1呼叫\u电话-1写入\u外部\u存储-1读取\u外部\u存储-1访问\u模拟\u位置-1访问\u精细\u位置-1访问\u粗略\u位置-1*/哪一个相关?如果您对服务器端应用程序有控制权,请调试以检查。在我看来,如果我请求读取手机状态或呼叫手机,客户端应用程序成功发送消息,然后我强制关闭我的应用程序..然后重新打开我的应用程序。它正常工作。奇怪的但若我请求并调用api,它就不起作用了。我必须强制退出并重新打开应用程序
public static SSLContext getSSL() {
try {
CertificateFactory cf = CertificateFactory.getInstance("X.509");
AssetManager assetManager = BankNizwaApp.getAppContext()
.getAssets();
InputStream caInput = assetManager.open("cert.pem");
java.security.cert.X509Certificate ca = null;
try {
ca = (java.security.cert.X509Certificate) cf
.generateCertificate(caInput);
/*
* System.out.println("BankNizwa: " +
* ((java.security.cert.X509Certificate) ca) .getSubjectDN());
*/
} catch (Exception er) {
//System.out.println("BankNizwa: " + er.getMessage());
} finally {
caInput.close();
}
String keyStoreType = KeyStore.getDefaultType();
KeyStore keyStore = KeyStore.getInstance(keyStoreType);
keyStore.load(null, null);
keyStore.setCertificateEntry("ca",
(java.security.cert.X509Certificate) ca);
String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
TrustManagerFactory tmf = TrustManagerFactory
.getInstance(tmfAlgorithm);
tmf.init(keyStore);
SSLContext context = SSLContext.getInstance("TLS");
context.init(null, tmf.getTrustManagers(), null);
return context;
} catch (Exception e1) {
// System.out.println("BankNizwaaaaa: "+e1.getMessage());
return null;
}
}
HttpURLConnection conn = (HttpURLConnection) url2
.openConnection();
conn.setReadTimeout(180000);
((HttpsURLConnection) conn).setSSLSocketFactory(Common
.getSSL().getSocketFactory());
conn.setConnectTimeout(180000);
conn.setRequestMethod("GET");
conn.setDoInput(true);
// conn.setDoOutput(true);
conn.setRequestProperty("Cache-Control", "no-cache");
String sessionId = "JSESSIONID=" + Common.getAuthCode();
conn.setRequestProperty("Cookie", sessionId);
conn.setRequestProperty("User-Agent",
System.getProperty("http.agent"));