2016-04-07 34 views
0

我在从android应用程序调用api时遇到问题。当我从浏览器调用它时,Api不会造成任何问题。我在下面发布我的代码和我得到的回应。获取错误javax.net.ssl.SSLException

HttpResponse httpresponse=null; 

    try { 
     HttpClient client = new DefaultHttpClient(); 
     HttpClient httpclient2 = new DefaultHttpClient(); 
     HttpEntity entity=null;         
     HttpPost post=new HttpPost(url); 
     post.setEntity(new UrlEncodedFormEntity(parList,"UTF-8")); 
     httpresponse= client.execute(post); 
     entity=httpresponse.getEntity(); 
     response=EntityUtils.toString(entity); 

     Log.d("code of response", ""+httpresponse.getStatusLine().getStatusCode()); 

     if(httpresponse.getStatusLine().getStatusCode()==200){ 
      if (httpresponse.getStatusLine().getStatusCode() == HttpStatus.SC_UNAUTHORIZED) { 


       Log.d("code", ""+httpresponse.getStatusLine().getStatusCode()); 

       Header authHeader = httpresponse.getFirstHeader(AUTH.WWW_AUTH); 
       DigestScheme digestScheme = new DigestScheme(); 

       //Parse realm, nonce sent by server. 
       digestScheme.processChallenge(authHeader); 

       UsernamePasswordCredentials creds = new UsernamePasswordCredentials("cuztomise", "123456"); 
       post.addHeader(digestScheme.authenticate(creds, post)); 

       ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
       String responseBody = httpclient2.execute(post, responseHandler); 
       return responseBody; 
      } 
      return response; 
      }else{ 

       makelogs(url, "", parList.toString(),""+httpresponse.getStatusLine().getStatusCode(),context_new,response); 
       return response; 
      } 
    } catch (IOException | MalformedChallengeException | AuthenticationException e) { 
     // TODO Auto-generated catch block 

     makelogs(url, e.toString(), parList.toString(),""+httpresponse.getStatusLine().getStatusCode(),context_new,response); 
     e.printStackTrace(); 
     return e.toString(); 
    }catch (Exception e) { 
     // TODO: handle exception 
     makelogs(url, e.toString(), parList.toString(),""+httpresponse.getStatusLine().getStatusCode(),context_new,response); 
     e.printStackTrace(); 
     return e.toString(); 
    } 

的错误,我得到的是javax.net.ssl.SSLException

+0

这可以帮助你http://stackoverflow.com/questions/2642777/trusting-all-certificates-using-httpclient-over-https – mubeen

回答

0

这是由于与客户机建立连接 是 并不安全。

这是由于您正在与HTTP服务器而不是HTTPS服务器通话。可能您没有使用HTTPS的正确端口号。