如果Parse推送已初始化,则HTTPS请求的SSLPeerUnverifiedException

时间:2016-03-02 14:32:15

标签: android ssl parse-platform android-volley

通过Parse.com添加Push功能后,我立即开始收到以下Volley错误:

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());

如果从Application类中删除以下Parse初始化代码,则错误消失:

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

问题的原因是什么以及可以做些什么?

2 个答案:

答案 0 :(得分:0)

对于任何其他有完全相同问题的人:将Android Parse SDK版本更新为1.13.1为我解决了这个问题。

答案 1 :(得分:0)

URL可能不匹配。 您从android发送的请求url可能使用类似url的网址: https://domain 但在您的服务器网址中, http://domain 因此,您的网站中可能没有SSL,这就是引发异常的原因。 希望对您有帮助