HTTP Post ОК, как отобразить ответ?

#android #http-post #android-webview

#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?dumpamp;htmlamp;dir=mydiramp;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
            }
  

Я не уверен, нужно ли мне создавать другое действие или нет… Я полагаю, мне также нужно создать webview, но я немного заблудился. На данный момент «необработанный» HTML был бы хорош, но впоследствии мне нужно будет проанализировать данные и извлечь только те строки, которые мне нужны.

Итак, мне нужна помощь (хороший и простой пример !)

Спасибо.

Ответ №1:

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

Может быть, это поможет?

Ответ №2:

Очень простой подход заключается в том, чтобы использовать textview так, как вы использовали button widget. и какой вообще ответ вы получили, установленный в textview. вы сможете увидеть ответ. в противном случае используйте журнал для регистрации вашего ответа в logcat.

Комментарии:

1. Log.e(«Вот HTTP-ответ: «, ret); retTextView.append(ret);

2. retTextView.setText(ret); будет достаточно

Ответ №3:

Вот как вы получаете 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();
  

Ответ №4:

Я использую:

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