2011-11-14 87 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();