2014-04-17 3 views
1

여기에 처음 게시됩니다. 내가 이름 = "__ viewstate가"와 함께 필드에서 텍스트를 얻고 변수에 저장할 수 있도록하려면android는 HTML 숨겨진 양식 필드에서 텍스트를 가져옵니다.

<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"> 

:이 같은 숨겨진 입력 필드가있는 사이트가 있습니다. 모든 이것은 안드로이드 애플 리케이션을위한 자바에서 수행해야합니다. HTML 코드에서이 값을 가져올 방법이 있습니까? 사이트를 통해 GET 메서드를 확인한 결과이 값을 전송하지 않았습니다. 문제는이 값이 때때로 바뀌고 매번 새로운 값을 얻어야한다는 것입니다.

+0

왜 PostBack 정보로 이름을 설정하고 있습니까? 그 내 이해 이벤트 핸들 이벤트 태그입니다. 이름 태그는 게시물 변수의 ID입니다. – WASasquatch

답변

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; 
    } 
} 
+0

이것 좀 봐주세요. http://stackoverflow.com/questions/37644551/auto-fill-forms-in-webview-by-javascript-android –

0

이 페이지의 HTML 코드를 acquirred 한 가정 및 특정 필드의 값을 얻으려면 내가 this 또는 this과 같은 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 
+0

jsoup 파서를 사용했지만 지금은 다른 문제에 직면 해 있습니다. 코드가 작동하지 않는 것 같습니다. 문제를 파악할 수 있습니까? 코드는 여기 [link] (https://docs.google.com/document/d/1UWdjL0KhTyKVlMmXbXfFLgY8h2OP_wcyqmmkPi5oMZA/edit?usp=sharing) – user3544346

0

사용 Jsoup HTML에 자바에 대한 분석을하고 기계적 인조 인간. 모든 작업이 쉬워집니다.

관련 문제