#java #jsoup
#java #jsoup
Вопрос:
Я пытаюсь отправить форму после выбора опции из выпадающего списка. Ниже приведена моя форма:
Код формы
<form name="form1" id="form1" method="post">
<label class="floatl"> Select </label>
<select class="form-control floatl" id="BankStatus" onchange="getBankStatus()">
<option value="0" selected>Select</option>
<option value="Y-1">Success</option>
<option value="N-0">Failure</option>
</select>
<br clear="all">
<br clear="all">
<button type="button" name="formSubmit" id="SubmitForm" onClick="validateform()" class="btn btn-primary">Submit</button>
<br clear="all">
<br clear="all">
<input type="hidden" id="txnres" name="txnres" value="">
</form>
Я могу изменить параметр на Success с помощью приведенного ниже кода, но я не уверен, как я могу отправить свою форму сейчас.
Connection.Response resp = Jsoup.connect(url) //
.timeout(30000)
.method(Connection.Method.GET) //
.execute();
//System.out.println(resp.body());
Document responseDocument = resp.parse();
Element potentialForm = responseDocument.select("form#form1").first();
FormElement form = (FormElement) potentialForm;
Element mySelect=form.getElementsByAttributeValue("id", "BankStatus").get(0);
Elements options = mySelect.getElementsByTag("option");
Element Sucessoption=options.get(1);
Element falseoption=options.get(0);
Sucessoption.attr("selected","selected");
falseoption.removeAttr("selected");
Ответ №1:
Взгляните на метод FormElement.submit(). Он создает новый объект подключения, который затем можно выполнить:
Connection formConnect = form.submit();
Connection.Response formResponse = formConnect.execute();
Document formDoc = formResponse.parse();
submit
Метод подготавливает отправку на основе сведений о форме, включая данные, метод GET или POST и т.д. Вы можете добавить другие настройки formConnect
(новые файлы cookie или данные для загрузки файла и т. Д.) Перед его выполнением.