2011-12-10 65 views
0

我有一個網址www.abc.com/check ...我在這個地址上創建了一個Web服務來接收數據。通過Android應用程序,我使用以下代碼向此地址發送一些數據:android:如何確保我使用httppost正確發佈

public class TestappActivity extends Activity { 
    EditText ch; 
    Button btn; 
    InputStream is; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     ch=(EditText)findViewById(R.id.ch); 
     btn=(Button)findViewById(R.id.btn); 

     btn.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
      sendData(); 

      } 
     }); 


    } 


    private void sendData() { 

      Log.i(getClass().getSimpleName(), "send task - start"); 

      HttpParams p=new BasicHttpParams(); 
      p.setParameter("name", ch.getText()); 


      HttpClient client = new DefaultHttpClient(p); 


      try { 
       HttpResponse response=client.execute(new HttpPost("http://www.abc.com/check")); 
       is=response.getEntity().getContent(); 

     } catch (ClientProtocolException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
     } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
     } 



      Log.i(getClass().getSimpleName(), "send task - end"); 

     } 
} 

如何查找我的帖子是否成功?當我發佈一些東西時,我會回來什麼。 ?

回答

2

[更新]簡單的解決方案,你可以檢查狀態碼

response.getStatusLine().getStatusCode(); 

這是一個整數(200表示OK,500意味着服務器錯誤),Reference Here

或者完全使用檢查它是由你的服務的服務器上生成的,所以如果你想以確保調用是真正的成功響應體

response.getEntity().getContent(); 

,你可以返回的東西到c lient。例如XML字符串

"<status>OK</status>" 

在響應體中就足夠了。你會在客戶端得到它,然後做你想做的事情。

我推薦更簡單的解決方案。謝謝shraddha

0

我想baoz是正確的,但有一個簡單的替代方案。

response.getStatusLine.getstatuscode(); //200-successful 

它將返回成功以及錯誤的數字響應代碼。而且,如果響應是否定的,它將返回相關的錯誤代碼,以便您可以跟蹤並捕獲這些錯誤。

問候。