«java.security.cert.CertPathValidatorException», те же API работают в IOS - PullRequest
0 голосов
/ 21 октября 2019

Я сталкиваюсь с этим:

"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;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...