Как выполнить отправку формы с помощью FormElement

#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 или данные для загрузки файла и т. Д.) Перед его выполнением.