这是我第一次在这里发帖。我的网站有一个隐藏的输入字段,如下所示:
<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方法并没有通过它传输值。问题是这个值会不时变化,我每次都要得到新值。
答案 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解析。它使所有工作变得简单。