HTTP Post OK,如何显示响应?

时间:2011-11-14 11:28:45

标签: android http-post android-webview

我试图将我的知识增加到Android并尝试为我的个人需求编写一个小应用程序。 我试图通过HTTP Post方法在测试服务器上发布数据。 请求发送正常,但现在,我尝试显示响应,这是一个带有我的请求转储的HTML页面。 这是我的代码的摘录,它基本上是一些EditText字段,以及发送请求的按钮。 以下代码是该按钮的监听器。

        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
            }

我不确定是否需要创建另一个Activity ...我想我也必须创建一个webview,但我有点迷失。现在,&#34; raw&#34; HTML会很好,但之后我需要解析数据,并只提取我需要的字符串。

所以我需要帮助(这是一个简单的例子!)

谢谢。

4 个答案:

答案 0 :(得分:2)

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

也许这会有所帮助?

答案 1 :(得分:0)

非常简单的方法是采用textview采用按钮小部件的方式。以及你在textview中设置的响应。你将能够看到响应。否则使用Log在logcat中记录您的响应。

答案 2 :(得分:0)

我正在使用:

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

答案 3 :(得分: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();