Как получить результат с сайта с помощью Http в Android

1

Я хочу использовать внешний веб-сайт 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&amp;STRING=5WQAy%2BQCUZRGIUJ8qZtpSrmkiKzWp8HRL7Ti1xmFSxMAEZE7GHEtaylOApMGd9qoesY7Pl%2BUN1Z6Kzap9RIg%2Bw==" />

Теперь, как я это прочитал?

Теги:
httpwebrequest

2 ответа

1
Лучший ответ

Используйте инструменты разработчика браузера, чтобы узнать, какие поля необходимы.

Вы должны сделать запрос 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();
}
  • 0
    спасибо за ваш ответ, но вы можете отредактировать код и добавить в него свою строку, чтобы я мог понять, что вы хотите, чтобы я сделал.
  • 0
    @net_whiz, я добавил код
Показать ещё 5 комментариев
1

Вы можете просмотреть источник, и есть строка

<input type="hidden" name="LANGUAGE" value="Finnish">

Поэтому вам нужно также добавить это поле, поскольку они могут его использовать. Так

 params.add(new BasicNameValuePair("LANGUAGE", "Finnish"));
  • 0
    спасибо, но я отредактировал код до сих пор не выводится в моем текстовом виде. что может быть не так?
  • 0
    Я бы, вероятно, начал с проверки resEntity как текста, прежде чем помещать его в textview. Есть ли исключение NetworkOnMainThread ??
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню