Я хочу создать небольшое Java-приложение для связи с HTML-сервером: мне нужно POST-форму и ПОЛУЧИТЬ результаты в HTML
Используя Wireshark, я поймал содержимое пакета, который я должен отправить. Это примерно так:
__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwU[..]
[...]__EVENTVALIDATION=%2FwEWJAK9%2Fu[...]
TxTNumeroPalina=3329&ListaLocalit%C3%A0=NAPOLI&TxTViaInteresse=&TxTCAP=&BtnInviaDati=Invia+Dati
Где точки обозначают другие случайные символы.
Я должен получить обратно страницу, содержащую некоторые сроки для автобусов. Я пробовал таким образом.
String eventTarget = "__EVENTTARGET" + "=" + "&";
String eventArgument = "__EVENTARGUMENT" + "=" + "&";
String viewState = "__VIEWSTATE" + "=" + "%2FwEPDwUJMj[...]";
String eventValidation = "__EVENTVALIDATION" + "=" + "%2FwEWJ[...]";
String eventObjects = eventTarget + eventArgument + viewState + eventValidation;
//form parameters
String numeroPalina = "TxtNumeroPalina" + "=" + "3329" + "&";
String listaLocalita = "Listalocalit%C3%A0" + "=" + "NAPOLI" + "&";
String viaInteresse = "TxtViaInteresse" + "=" + "" + "&";
String cap = "TxtCAP" + "=" + "";
String sendButton = "BtnInviaDati" + "=" + "Invia+Dati";
String locatorObjects = numeroPalina + listaLocalita + viaInteresse + cap;
String newData = URLEncoder.encode(eventTarget + eventArgument + viewState + eventValidation + locatorObjects, "UTF-8");
URL infoclickUrl = new URL("http://www.anm.it/Default.aspx");
HttpURLConnection connection = (HttpURLConnection)infoclickUrl.openConnection();
connection.setDoOutput(true);
HttpURLConnection.setFollowRedirects(true);
connection.setRequestMethod("POST");
OutputStreamWriter streamWriter = new OutputStreamWriter(connection.getOutputStream());
streamWriter.write(newData);
streamWriter.flush();
BufferedReader streamReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
String page="";
while ((line = streamReader.readLine()) != null) {
page += line;
}
streamReader.close();
streamWriter.close();
Я никогда не смогу получить правильный результат от этого! Что с ним не так?
---> Редактировать:
В http://www.anm.it/Default.aspx вы можете составить форму с определенной автобусной остановкой, отправить ее и получить взамен расписание выбранной автобусной остановки (прибывающих автобусов). Итак, я должен получить html-страницу с результатом моего запроса (если я отправляю форму через браузер, она работает). С кодом, который я написал, я получаю только HTML-страницу, содержащую начальную страницу.