2013-07-05 28 views
0

我正在編寫一個Android應用程序。它發出了一個HTTPPost到服務器並接收答案,當我使用:httpclient.execute工作但重載函數拋出異常

public final HttpResponse execute (HttpUriRequest request)

它的確定,

,但是當我嘗試使用:

public T execute (HttpUriRequest request, ResponseHandler<? extends T> responseHandler)

它拋出ClientProtocolException

因爲某些原因我想用第二個函數,應該怎麼做Ø?什麼是例外?

這裏是使用第一功能的代碼:

HttpPost httppost = new HttpPost("http://foo.Com/GeneralControls/Service.asmx/Login"); 
    DefaultHttpClient httpclient = new DefaultHttpClient(); 
    HttpResponse response = httpclient.execute(httppost) ; 

,這裏是使用所述第二函數的代碼:

HttpPost httppost = new HttpPost("http://foo.Com/GeneralControls/Service.asmx/Login"); 
    DefaultHttpClient httpclient = new DefaultHttpClient(); 
    ResponseHandler<String> responseHandler=new BasicResponseHandler(); 
    String response = httpclient.execute(httppost , responseHandler) ; 

拋出ClientProtocolException。

回答

0

這個問題是一個協議的問題,web服務正在改變的目標網址和它產生了一個例外

0

請參見下面的代碼工作正常,我

 HttpContext localContext = new BasicHttpContext(); 
     localContext.setAttribute(ClientContext.COOKIE_STORE, 
       Util.cookieStore); 
     try { 
      HttpResponse response = httpclient.execute(httppost, 
        localContext); 
     } catch (ClientProtocolException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

但你試圖通過對ResponseHandler它接受的HttpContext

+0

對不起,我編輯了這個問題 – Navid777