【问题标题】:GCM HTTP server javax.net.ssl.SSLPeerUnverifiedException: peer not authenticatedGCM HTTP 服务器 javax.net.ssl.SSLPeerUnverifiedException:对等体未通过身份验证
【发布时间】:2014-12-18 10:46:19
【问题描述】:

我正在尝试使用 apache http 客户端实现 GCM HTTP 服务器。 我收到以下异常:

javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at sun.security.ssl.SSLSessionImpl.getPeerCertificates(Unknown Source)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:390)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:561)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)
at com.hp.pm.web.command.PostAlertsToGCM.Command(PostAlertsToGCM.java:264)
at com.hp.pm.web.command.PostAlertsToGCM.main(PostAlertsToGCM.java:277)

我的代码如下所示。有人可以帮忙吗?

HttpClient httpClient = new DefaultHttpClient();
    try {
        HttpPost request = new HttpPost("https://android.googleapis.com/gcm/send");
        HttpHost proxy = new HttpHost("proxy.sgp.com", 8080, "https");
        httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy);
        StringEntity params =new StringEntity("{\"collapse_key\" : \"Food-Promo\", \"data\" : {\"Category\" : \"FOOD\",\"Type\": \"VEG\",}, \"registration_ids\": [\"APA91bEk7GPFVxzOidvB3JKCMWq3FHpAaTj2dBv9VGOQkKtLAEiVGR8TDi1U4D1k293ODAFTJ8dNfE2gzJNfCvB1sjewZu2fGOIJmY8dgjcNTZQYi4QfyQH-AfsdaO0qEmQnbEeEtsUQ5LzWrIHbosdfAhJMx1bNd7g0O9bg\"]}");
        request.addHeader("Content-Type", "application/json");
        request.addHeader("Authorization", "key=AIzaSyAfsYc53L6kg_XD9ioWdLjUAi2iEfNKidSF8");
        request.setEntity(params);
        HttpResponse response = httpClient.execute(request);
        System.out.println(response.toString());
    }catch (Throwable ex) {
        ex.printStackTrace();
    } finally {
        httpClient.getConnectionManager().shutdown();
    }

【问题讨论】:

    标签: apache http httprequest google-cloud-messaging


    【解决方案1】:

    这似乎是与 SSL 证书相关的问题。这个link 应该可以帮助你。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-30
      • 1970-01-01
      相关资源
      最近更新 更多