2016-04-07 35 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的正確端口號。