2015-10-14 6 views
0

Мне нужно получить информацию о форме веб-страницы в Java, но есть проблема. Мой код ниже.Отправить форму в Java

String query = "input=mysearch"; 
    String charset = "UTF-8"; 
    String str; 


    URLConnection connection = new URL("http://www.webpage.com/").openConnection(); 
    connection.setDoOutput(true); // Triggers POST method. 
    connection.setRequestProperty("Accept-Charset", charset); 
    connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=" + charset); 
    connection.getOutputStream().write(query.getBytes(charset)); 
    BufferedReader in = new BufferedReader(
      new InputStreamReader(connection.getInputStream(), "UTF-8") 
    ); 


    while ((str = in.readLine()) != null) { 
     System.out.println(str); 
    } 

Проблема в том, что кнопки отправки на веб-страница выглядит как этот

<a href="javascript:document.forms[0].submit();" type="submit" class="btn" id="search-btn"><i class="demo-icon icon-search"></i></a> 

Так что не представлена. Вместо этого представлена ​​другая кнопка, которая принадлежит к другой форме.

<input type="submit" name="btnAdmin" value="Submit" id="btnAdmin" class="button" style="width:100%;" /> 

Любое предложение, как мне подать правильную форму?

Спасибо за вашу помощь

ответ

0

Я настоятельно рекомендую HttpClient от Apache. Это значительно упрощает это для вас. Ниже, как вы можете решить, чтобы представить форму (в основном взяты из раздела учебника сайта):

List<NameValuePair> formparams = new ArrayList<NameValuePair>(); 
formparams.add(new BasicNameValuePair("param1", "value1")); 
formparams.add(new BasicNameValuePair("param2", "value2")); 
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, Consts.UTF_8); 
HttpPost httppost = new HttpPost("http://website.com/form_action_attribute.php"); 
httppost.setEntity(entity); 

Вы можете захватить ответ и прочее тоже, если вам нужно, чтобы сделать это.

+0

На самом деле, это не сообщение http post, а только функция javascript, которая принимает значения из текстового поля ..: -/Любая возможность вызова этой функции javacript в Java? – Neonik

Смежные вопросы