#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());