Я хочу использовать внешний веб-сайт http://www.siirretytnumerot.fi/ в своем приложении для Android. Этот веб-сайт принимает два значения PREFIX и NUMBER. Я смущен в данный момент, поскольку, похоже, я не получаю никакого вывода в своем тексте. Я не знаю, что использовать, будь то httpget или httppost. Я попробовал и то и другое, но результата не получил. Но когда я перейду к ссылке для проводника и введите вход, строка веб-сайта изменится на http://www.siirretytnumerot.fi/QueryServlet. Я попытался использовать оба вывода без вывода. Пожалуйста, кто-нибудь может помочь мне просмотреть веб-сайт и предложить, какой из методов http подходит для меня? вот код, который я использовал.
TextView tv=(TextView)findViewById(R.id.display);
try {
HttpClient client = new DefaultHttpClient();
String postURL = "http://www.siirretytnumerot.fi/";
HttpPost post = new HttpPost(postURL);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("PREFIX", "044"));
params.add(new BasicNameValuePair("NUMBER", "9782231"));
params.add(new BasicNameValuePair("LANGUAGE", "Finnish"));
params.add(new BasicNameValuePair("Submit", "Hae"));
UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params,HTTP.UTF_8);
post.setEntity(ent);
HttpResponse responsePOST = client.execute(post);
HttpEntity resEntity = responsePOST.getEntity();
if (resEntity != null) {
tv.setText(EntityUtils.toString(resEntity));
}
} catch (Exception e) {
e.printStackTrace();
}
вывод из ссылки появляется как источник изображения
<img src="QueryServlet?ID=-7187780920186056107&STRING=5WQAy%2BQCUZRGIUJ8qZtpSrmkiKzWp8HRL7Ti1xmFSxMAEZE7GHEtaylOApMGd9qoesY7Pl%2BUN1Z6Kzap9RIg%2Bw==" />
Теперь, как я это прочитал?
Используйте инструменты разработчика браузера, чтобы узнать, какие поля необходимы.
Вы должны сделать запрос POST
на http://www.siirretytnumerot.fi/QueryServlet
Попытайтесь добавить эти поля в свой запрос:
Submit: Hae
LANGUAGE: Finnish
Надеюсь, это поможет
РЕДАКТИРОВАТЬ
Это будет выглядеть так
TextView tv=(TextView)findViewById(R.id.display);
try {
HttpClient client = new DefaultHttpClient();
String postURL = "http://www.siirretytnumerot.fi/";
HttpPost post = new HttpPost(postURL);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("PREFIX", "044"));
params.add(new BasicNameValuePair("NUMBER", "9782231"));
//here the new lines
params.add(new BasicNameValuePair("LANGUAGE", "Finnish"));
params.add(new BasicNameValuePair("Submit", "Hae"));
UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params,HTTP.UTF_8);
post.setEntity(ent);
HttpResponse responsePOST = client.execute(post);
HttpEntity resEntity = responsePOST.getEntity();
if (resEntity != null) {
tv.setText(EntityUtils.toString(resEntity));
}
} catch (Exception e) {
e.printStackTrace();
}
Вы можете просмотреть источник, и есть строка
<input type="hidden" name="LANGUAGE" value="Finnish">
Поэтому вам нужно также добавить это поле, поскольку они могут его использовать. Так
params.add(new BasicNameValuePair("LANGUAGE", "Finnish"));