如何在android中使用Http从网站获取结果

时间:2012-03-22 14:25:45

标签: android httpwebrequest

我想在我的Android应用程序中使用外部网站http://www.siirretytnumerot.fi/。该网站有两个值PREFIX和NUMBER。我现在很困惑,因为我似乎没有在textview中获得任何输出。我不知道使用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 个答案:

答案 0 :(得分:1)

使用浏览器的开发者工具找出所需的字段。

您应该向http://www.siirretytnumerot.fi/QueryServlet

提出POST次请求

尝试将这些字段添加到您的请求中:

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

答案 1 :(得分:1)

您可以查看来源,并且有一行

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

所以你也需要添加那个字段,因为他们可能正在使用它。所以

 params.add(new BasicNameValuePair("LANGUAGE", "Finnish"));