2011-11-14 126 views
2

我試圖增加我對Android的知識,並嘗試爲我的個人需求編寫一個小應用程序。 我試圖通過測試服務器上的HTTP Post方法發佈數據。 請求發送正常,但現在,我試圖顯示響應,這是一個HTML頁面,包含我請求的轉儲。 這裏是我的代碼的摘錄,它基本上是幾個EditText字段,以及發送請求的按鈕。 以下代碼是該按鈕的偵聽器。HTTP Post確定,如何顯示響應?

 validateButton.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpPost httppost = new HttpPost("http://posttestserver.com/post.php?dump&html&dir=mydir&status_code=200"); 

      try { 
       // Gathering data 
       String value01 = nb01Spinner.getSelectedItem().toString(); 
       String value02 = nb02EditText.getText().toString(); 
       String value03 = nb03EditText.getText().toString(); 
       String value04 = nb04EditText.getText().toString(); 

       // Add data to value pairs 
       List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(04); 
       nameValuePairs.add(new BasicNameValuePair("test01", value01)); 
       nameValuePairs.add(new BasicNameValuePair("test02", value02)); // 
       nameValuePairs.add(new BasicNameValuePair("test03", value03)); 
       nameValuePairs.add(new BasicNameValuePair("test04", value04)); 

       httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

       // Execute HTTP Post Request 
       HttpResponse response = httpclient.execute(httppost); 

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

我不知道我是否需要創建另一個活動或不...我想我也有藏漢創建一個web視圖,但我有點失落。現在,「原始」HTML會很好,但之後我需要解析數據,並只提取我需要的字符串。

所以,我需要幫助(一個良好而簡單的例子!)

謝謝。

回答

0

非常簡單的方法是採取textview你採取按鈕部件的方式。以及你在textview中設置的反應。你將能夠看到迴應。否則使用Log在logcat中記錄你的響應。

+0

Log.e( 「這裏是HTTP響應:」 RET); \t \t retTextView.append(ret); – user1045461

+0

retTextView.setText(ret);將足夠 –

+0

的確,謝謝;) – user1045461

2
String ret = EntityUtils.toString(response.getEntity()); 

也許這樣會有幫助嗎?

+0

是的,它有點幫助,謝謝你;) – user1045461

0

我使用:

Log.d("log_response", response.getStatusLine().toString()); 
0

這是你如何得到HTTP響應:

  byte[] buffer = new byte[1024]; 
      httpclient = new DefaultHttpClient(); 
      httppost = new HttpPost("http://www.rpc.booom.com"); 



      postParameters = new ArrayList<NameValuePair>(); 
      postParameters.add(new BasicNameValuePair("params","1")); 
      //....... 
      httppost.setEntity(new UrlEncodedFormEntity(postParameters)); 

      HttpResponse response = httpclient.execute(httppost); 
      Log.w("Response ","Status line : "+ response.getStatusLine().toString()); 
      buffer = EntityUtils.toString(response.getEntity()).getBytes();