SSLPeerUnverifiedException для HTTPS-запросов, если инициализированные запросы Parse

Я начал получать следующую ошибку Volley сразу после добавления функции Push через Parse.com:

com.android.volley.NoConnectionError: javax.net.ssl.SSLPeerUnverifiedException: Cannot verify hostname: xxxxx.yy

xxxxx.yy - хост, с которым я общаюсь по протоколу HTTPS. Способ установки соединения довольно обычный. Например, это вызывающая функция:

public static void login(final String token, final Activity activity) {
    String requestUrl = AppConstant.LOGIN;

    final HashMap<String, String> params = new HashMap<String, String>();
    if (token != null && !token.isEmpty()) {
        params.put("token", token);
    }
    params.put("useragent", AppConstant.USER_AGENT);
    params.put("version", getVersionName(activity));

    JsonFormRequest myRequest = new JsonFormRequest(
            Request.Method.POST,
            requestUrl,
            params,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject jsonObject) {
                    ...
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError volleyError) {
                    ...
                }
            }
    );

    MfApplication.getInstance().addToRequestQueue(myRequest, "tag_login_phone");
}

Добавляет запрос в очередь:

public <T> void addToRequestQueue(Request<T> req, String tag) {
    getRequestQueue().add(req);
}

Очередь создается один раз следующим образом:

mRequestQueue = Volley.newRequestQueue(getApplicationContext());

Если я удалю следующий код инициализации Parse из моего класса Application, ошибка исчезнет:

Parse.initialize(this);
ParseInstallation.getCurrentInstallation().saveInBackground();
ParsePush.subscribeInBackground("general");

В чем причина проблемы и что можно сделать?

1 ответ

Для любых других людей с точно такой же проблемой: обновление версии Android Parse SDK до 1.13.1 решило эту проблему для меня.

Возможно несоответствие URL. URL-адрес запроса, который вы отправляете с Android, может использовать URL-адрес, например:https://domain/, но URL-адрес вашего сервера будет похож на http://domain/ Так что на вашем веб-сайте может не быть SSL, поэтому создается исключение. Надеюсь, это поможет

Другие вопросы по тегам