我想在我的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&STRING=5WQAy%2BQCUZRGIUJ8qZtpSrmkiKzWp8HRL7Ti1xmFSxMAEZE7GHEtaylOApMGd9qoesY7Pl%2BUN1Z6Kzap9RIg%2Bw==" />
现在我怎么读这个?
答案 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"));