2012-01-28 6 views
4

HTML 양식을 작성하려고합니다. 양식의 제출 단추를 누르고 응답을 받으십시오.Java에서 HTML 양식 제출

양식을 채우는 것은 정말 잘 작동하지만 페이지의 제출 버튼을 누르는 방법을 알 수 없습니다.

아파치 httpclient 라이브러리를 사용하고 있습니다.

내 코드는 다음과 같습니다

 httpclient = new DefaultHttpClient(); 
     HttpPost httpost = new HttpPost(pUrl); 

     List <NameValuePair> nvps = new ArrayList <NameValuePair>(); 
     nvps.add(new BasicNameValuePair("filter_response_time_http", "1")); 
     nvps.add(new BasicNameValuePair("filter_port", "80")); 
     nvps.add(new BasicNameValuePair("filter_country", "US")); 
     nvps.add(new BasicNameValuePair("submit", "Anzeigen")); 

     httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); 

     response = httpclient.execute(httpost); 


     entity = response.getEntity(); 

제출 버튼에 대한 코드는 다음과 같습니다

<input onclick="doSubmit();" id="submit" type="submit" value="Anzeigen" name="submit" /> 
+0

'UrlEncodedFormEntity'의 두 번째 매개 변수는'HTTP.UTF_8'이 더 이상 사용되지 않으므로'java.nio.charset.StandardCharsets.UTF_8'이어야합니다. – 0x6B6F77616C74

답변

3

당신은 HttpClient를 함께 "버튼을 클릭"하지 않는다; HTTP와는 JS 및 DOM과 관련이 없습니다.

브라우저를 에뮬레이트하려면 HttpClient와 Selenium을 모두 구동 할 수있는 JWebUnit과 같은 것을 사용하고 JavaScript 지원을 제공하십시오.

1

제출 버튼을 클릭하면 자바 스크립트 기능이 호출됩니다. Java 코드를 사용하여 해당 동작을 에뮬레이트 할 수 없습니다.

그 때문에 자바 스크립트를 처리 할 수있는 htmlunit과 같은 헤드리스 브라우저를 사용해야합니다.