我正在尝试通过解析相关数据的网页,然后允许用户将数据发送回服务器,将Web界面转换为Android界面。使用简单的HttpClient代码,我设法获取网页,然后解析必要的信息。我不熟悉发送数据,所以,我希望有人可以解决一些问题。这是登录页面中的相关HTML代码。
<table cellspacing=0 cellpadding=0><tr><td valign=top align=center>
<table cellspacing=0 cellpadding=0 border=0 width=220 align=center class=table_back><tr><td>
<table cellspacing=1 cellpadding=1 border=0 width=100%>
<tr class=table_row1><form action="i.cfm?&1028&p=login&se=4" method=post name=stepform><Td align=right nowrap> Empire Name </td><td> <input type=text name=nic size=16 ></td></tr>
<tr class=table_row2><Td align=right>Password </td><td> <input type=password name=password size=16 ></td></tr>
<tr class=table_row1><Td align=right valign=top>Server</td><td> <select name=server>
<option value="0" >Normal</option>
<option value="1" >Fast</option>
<option value="2" >Slow</option>
<option value="3" >Ultra</option>
<option value="4" selected>RT</option>
</select><font class=smallfont> <a href=javascript:ch('i.cfm?popup=help&type=server');>What is this <img src=i/help.gif></a>
</td></tr>
<tr class=table_row2><Td align=right> IP </td><td> 69.47.105.149 <font class=smallfont>(United States of America)</font></td></tr>
<tr class=table_row1><td> </td><td> <input type=submit value=" Login " ></td></tr>
</td></tr></table></table>
正如您所看到的,需要3个输入,“Empire Name”,“Password”和“Server”,它们由5个选项组成。假如我从Android GUI收集了相关信息,我将如何通过httpClient将此数据发送回服务器。非常感谢任何帮助。
答案 0 :(得分:1)
如果您要做的不仅仅是抓一页和/或想要一个开发工具来帮助您,请查看Web Harvest。它可能具有Android提供的以外的依赖关系,但如果您必须使其适应目标平台,则它具有BSD许可。来源是here。
答案 1 :(得分:0)
我知道一个只包含webview的应用程序来显示移动网站。听起来你应该做什么,如果你想最小化本机android编程。
答案 2 :(得分:0)
代码可能如下所示:
private void postDataToServer() throws UnsupportedEncodingException, IOException {
/*
* Taken from "action" field in the form. This can be absolute address
* so take this into account.
*/
String action = "i.cfm?&1028&p=login&se=4";
/* This the server you want to send info. */
String yourServer = "http://your.server.com/";
/* This form uses "post" method. */
HttpPost post = new HttpPost(yourServer + action);
/* Form parameters. */
List<NameValuePair> params = new ArrayList<NameValuePair>();
/* This is what the user has entered in the corresponding fields. */
String nic = getNic();
String password = getPassword();
String server = getServer();
params.add(new BasicNameValuePair("nic", nic));
params.add(new BasicNameValuePair("password", password));
params.add(new BasicNameValuePair("server", server));
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params, "UTF-8");
HttpClient client = new DefaultHttpClient();
post.setEntity(entity);
client.execute(post);
}
也许这个page也可以提供帮助。