I wanna trust all SSL certificates in my application.
I add these code in my android.app.Application.
try {
TrustManager[] trustAllCerts = new TrustManager[] {
new X509TrustManager() {
@Override
public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException {
}
@Override
public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
X509Certificate[] myTrustedAnchors = new X509Certificate[0];
return myTrustedAnchors;
}
}
};
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String arg0, SSLSession arg1) {
return true;
}
});
} catch (Exception e) {
Log.e(TAG, "nuke", e);
}
But volleyError.networkResponse.statusCode
is always 500.
I go to JSONDataUrl with firefox, it works fine.
Help!
String JSONDataUrl = "https://something";
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, JSONDataUrl, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
dismissDialog();
Log.d(TAG, "response: " + response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
dismissDialog();
if (DEBUG) {
if (volleyError.networkResponse != null) {
Log.e(TAG, "headers: " + volleyError.networkResponse.headers);
Log.e(TAG, "statusCode: " + volleyError.networkResponse.statusCode);
}
}
Log.e(TAG, volleyError.toString(), volleyError);
}
});
requestQueue.add(jsonObjectRequest);