Я создаю приложение для Android, и я хочу опубликовать html-форму, которая выглядит так:
<form onsubmit="ShoutBox.postShout(); $('shout_data').value = ''; return false;">
Shout: <input type="text" id="shout_data" size="50"> -
<input type="submit" value="Shout Now!" id="shouting-status"></form>
Я использую Jsoup в остальной части приложения, и я бы предпочел использовать его для этого.
Я знаю о методе .data(name, value)
, но поскольку текст и кнопка html не имеют атрибутов имени, это не работает. Я могу извлечь поле с помощью идентификаторов и заполнить поле с помощью: Element.val(String val);
Но я не знаю, как отправить форму после этого. Может кто-нибудь мне помочь?
Это код JavaScript для публикации:
postShout: function() {
message = $("shout_data").value;
if (message == "") {
return false;
}
$("shouting-status").value = ShoutBox.lang[0];
postData = "shout_data="+encodeURIComponent(message).replace(/\+/g, "%2B");
new Ajax.Request('xmlhttp.php?action=add_shout', {method: 'post', postBody: postData, onComplete: function(request) { ShoutBox.postedShout(request); }});
},
Сообщение не выполняется через переменные submit и post, но через JavaScript и XML-HTTP-запрос. JSoup не способен выполнять JavaScript. Вам нужен браузер, который вы можете дистанционно управлять. Для этого безголовый в Java HTMLUnit - хороший выбор.
ShoutBox.postShout()
потому что эта форма, кажется, не публикуется "обычным способом"