Как получить результат с сайта с помощью Http в Android - PullRequest
1 голос
/ 22 марта 2012

Я хочу использовать внешний веб-сайт 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==" />

Теперь, как мне это прочитать?

Ответы [ 2 ]

1 голос
/ 22 марта 2012

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

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

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

 params.add(new BasicNameValuePair("LANGUAGE", "Finnish"));
1 голос
/ 22 марта 2012

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

Вы должны сделать POST запрос на http://www.siirretytnumerot.fi/QueryServlet

Попробуйте добавить эти поля к вашему запросу:

Submit: Hae
LANGUAGE: Finnish

Надеюсь, это поможет

EDIT

Это будет выглядеть так

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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...