android从html隐藏表单字段中获取文本

时间:2014-04-17 08:02:08

标签: android html forms

这是我第一次在这里发帖。我的网站有一个隐藏的输入字段,如下所示:

<form autocomplete="off" id="Form1" action="login.aspx" method="post" name="Form1">
     <input type="hidden" value="" name="__EVENTTARGET">
     <input type="hidden" value="" name="__EVENTARGUMENT">
     <input type="hidden" value="dDwtMTg3MDkxXN199v0w==" name="__VIEWSTATE">

我希望能够从字段中获取名称为&#34; __ VIEWSTATE&#34;并将其存储到变量中。 所有这些都需要在java中为Android应用程序执行。 有没有办法从HTML代码中获取此值?我检查了网站的GET方法并没有通过它传输值。问题是这个值会不时变化,我每次都要得到新值。

3 个答案:

答案 0 :(得分:0)

你可以试试这个(跳过HTML代码很好......):

Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(params[0]);
final NodeList inputs = document.getElementsByTagName("input");
for(int index = 0; index <inputs.getLength(); index++)
{
    if(inputs.item(index).getUserData("name").equals("__VIEWSTATE"))
    {
        final String yourValue = (String) inputs.item(index).getUserData("value");
        break;
    }
}

答案 1 :(得分:0)

假设您已经获得了页面的HTML代码并且想要获取特定字段的值,我建议使用this或{{3} HTML解析器}}

另一方面,你的任务似乎很简单,使用外部工具是过度的,所以手动提取所需的值可能就足够了:

Pattern matchPattern = Pattern.compile("name=\"__EVENTARGUMENT\"> <input type=\"hidden\" value=\"(.*?)\" name=\"__VIEWSTATE\">");
Matcher m = matchPattern.matcher(yourHTMLCode);
m.find();
String res = m.group(1);
// do something with 'res' containing the desired value

答案 2 :(得分:0)

使用Jsoup进行java和Android的HTML解析。它使所有工作变得简单。