Разместить форму без имени желательно с JSoup

0

Я создаю приложение для 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); }});
    },
  • 0
    Вы должны проанализировать метод javascript ShoutBox.postShout() потому что эта форма, кажется, не публикуется "обычным способом"
  • 0
    Я очень мало знаю о JS, но я добавил функцию в пост
Теги:
jsoup

1 ответ

0

Сообщение не выполняется через переменные submit и post, но через JavaScript и XML-HTTP-запрос. JSoup не способен выполнять JavaScript. Вам нужен браузер, который вы можете дистанционно управлять. Для этого безголовый в Java HTMLUnit - хороший выбор.

  • 0
    Ой, ладно, к сожалению, я обнаружил, что HTMLUnit плохо работает в приложениях для Android. Любые другие предложения?
  • 0
    Извините, я не знаю эквивалентной библиотеки, которая работает с Android. В этом конкретном случае я бы проверил, разрешает ли политика сайта прямой вызов конечной точки HTTP-запроса XML; вам, вероятно, нужны файлы cookie, установленные при входе Вы можете сделать это вручную с помощью HTTP-клиента.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню