Я сталкиваюсь с этим:
"java.security.cert.CertPathValidatorException: доверенная привязка для пути сертификации не найдена".
Но те же API доступны и в IOS, они не сталкиваются с этой проблемой. Может кто-нибудь помочь мне с решением?
Это как-то связано с конфигурацией сервера, или нам нужно написать что-то конкретное, чтобы запустить его без исключения?
protected Integer doInBackground(String... params)
{
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
internetStatus = new InternetStatus();
if (context != null)
status = internetStatus.networkStatus(context);
else
status = true;
try {
if (status) {
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC);
HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);
HttpResponse response;
HttpClient client = null;
try {
KeyStore trustStore;
trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(null, null);
MySSLSocketFactory sf = new MySSLSocketFactory(trustStore);
// sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
registry.register(new Scheme("https", sf, 443));
ClientConnectionManager ccm = new ThreadSafeClientConnManager(httpParams, registry);
client = new DefaultHttpClient(ccm, httpParams);
} catch (Exception e) {
e.printStackTrace();
}
HttpPost request = new HttpPost(url);
StringEntity se = new StringEntity(json.toString());
se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
request.setEntity(se);
Log.e("before service hit", url + " " + json.toString());
if (!url.contains("web/")) {
SharedPreferences pref = context.getApplicationContext().getSharedPreferences(Constants.SHARED_PREF, 0);
String accessToken = pref.getString(Constants.ACCESS_TOKEN, "");
Header authorization = new BasicHeader(HttpHeaders.AUTHORIZATION, accessToken);
request.setHeader(authorization);
}
Header contentType = new BasicHeader(HttpHeaders.CONTENT_TYPE, "application/json");
request.setHeader(contentType);
response = client.execute(request);
if (response != null) {
responseStatus = 1;
} else {
responseStatus = 2;
}
} catch (Exception e) {
if (e.getClass().equals(ConnectTimeoutException.class)) {
responseStatus = 4;
} else
responseStatus = 3;
e.printStackTrace();
}
return responseStatus;
}