javax.net.ssl.SSLPeerUnverifiedException:没有同行证书,而我正在与谷歌的地方api在Android

我正面临一个javax.net.ssl.SSLPeerUnverifiedException:没有同行证书exception,同时在Android模拟器中使用谷歌的地方api.Below是我的url:

https://maps.googleapis.com/maps/api/place/search/json?&location=28.632808,77.218276&radius=1000&sensor=false&key=AIzaSyC3y3fOMTqTkCjNNETQTCKustG7BRk_eVc 

当我简单地,粘贴在浏览器地址栏上面的url,它简单地给JSONstring。所以,我认为没有任何证书authentication的需要。

做了这么多的search和投入2-3天后,我使用了SSLSocketFacory类的org.apache.http.conn.ssl.SSLSocketFactory包来避免对等证书的错误。

下面是我的代码:

 public static HttpClient wrapClient(HttpClient base) { try { SSLContext ctx = SSLContext.getInstance("TLS"); X509TrustManager tm = new X509TrustManager() { public void checkClientTrusted(X509Certificate[] xcs, String string) throws CertificateException { } public void checkServerTrusted(X509Certificate[] xcs, String string) throws CertificateException { } public X509Certificate[] getAcceptedIssuers() { return null; } }; X509HostnameVerifier verifier = new X509HostnameVerifier() { public void verify(String string, SSLSocket ssls) throws IOException { } public void verify(String string, X509Certificate xc) throws SSLException { } public void verify(String string, String[] strings, String[] strings1) throws SSLException { } public boolean verify(String string, SSLSession ssls) { return true; } }; ctx.init(null, new TrustManager[]{tm}, null); SSLSocketFactory ssf = new SSLSocketFactory(ctx); ssf.setHostnameVerifier(verifier); ClientConnectionManager ccm = base.getConnectionManager(); SchemeRegistry sr = ccm.getSchemeRegistry(); sr.register(new Scheme("https", ssf, 443)); return new DefaultHttpClient(ccm, base.getParams()); } catch (Exception ex) { ex.printStackTrace(); return null; } } 

我使用的是android api 16,当我使用SSLSocketFactory(SSLSocketContext)构造函数时,eclipse给出了compliation错误,所以我search了很多并下载了具有SSLSocketFactory(SSLSocketContext)的jar,即“httpclient-4.1.1.jar”文件。而且我还在项目构buildpath中设置了那个jar的顺序,设置了最高的优先级。现在我得到以下警告:

 VFY:unable to resolve direct method 4253:Lorg/apache/http/conn/ssl/SSLSocketFactory.<init> 

并追随由此造成的长期的错误痕迹

 java.lang.NoSuchMethodError : org.apace.http.conn.ssl.SSLSocketFactory.<init> 

请帮助我,我不知道,我错了。

Solutions Collecting From Web of "javax.net.ssl.SSLPeerUnverifiedException:没有同行证书,而我正在与谷歌的地方api在Android"

我也有这个问题,并且在互联网上search了很多东西,但我通过一个简单的步骤解决了

我不知道确切的原因,但我解决了通过重新启动模拟器或创build一个新的模拟器 ,并在新的模拟器运行项目

我不会说这是确切的答案,但在修改复杂代码的编码之前尝试一下