通过httpclient android发送html命令

时间:2010-08-23 18:34:33

标签: html android httpclient

我正在尝试通过解析相关数据的网页,然后允许用户将数据发送回服务器,将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>&nbsp;Empire Name&nbsp;</td><td>&nbsp;<input type=text name=nic size=16 ></td></tr>
<tr class=table_row2><Td align=right>Password&nbsp;</td><td>&nbsp;<input type=password name=password size=16 ></td></tr>

<tr class=table_row1><Td align=right valign=top>Server</td><td>&nbsp;<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>&nbsp;IP&nbsp;</td><td>&nbsp;69.47.105.149 <font class=smallfont>(United States of America)</font></td></tr>
<tr class=table_row1><td>&nbsp;</td><td>&nbsp;<input type=submit value="  Login  " ></td></tr>

</td></tr></table></table>

正如您所看到的,需要3个输入,“Empire Name”,“Password”和“Server”,它们由5个选项组成。假如我从Android GUI收集了相关信息,我将如何通过httpClient将此数据发送回服务器。非常感谢任何帮助。

3 个答案:

答案 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也可以提供帮助。