如何发布数据与Jsoup的AJAX功能(how to post data to an ajax fu

2019-09-26 15:11发布

我想发布一个字符串

<li id="coz"><a
        onclick="doRequest('zemberek.jsp','YAZI_COZUMLE');">Cozumle</a></li>

通过Jsoup?。如何我能做什么? 这里是原来的网站: http://zemberek-web.appspot.com/

<html>
<head>
    <script>
        function doRequest(url, islem) {
            var ajaxRequest = new AjaxRequest(url);
            var hiddenField = document.getElementById("islem");
            hiddenField.value = islem;
            ajaxRequest.addNamedFormElements("giris", "islem");
            ajaxRequest.sendRequest();
        }
    </script>
</head>

<body>
<big>Zemberek Demo</big>
<small>(<a href="http://code.google.com/p/zemberek">Zemberek
Proje Sitesi</a>)</small>
<div id="menu">
<ul id="nav">
    <li id="denetle"><a
        onclick="doRequest('zemberek.jsp', 'YAZI_DENETLE');">Denetle</a></li>
    <li id="coz"><a
        onclick="doRequest('zemberek.jsp','YAZI_COZUMLE');">Cozumle</a></li>
    <li id="oner"><a onclick="doRequest('zemberek.jsp','ONER');">Oner</a></li>
    <li id="ascii2tr"><a
        onclick="doRequest('zemberek.jsp','ASCII_TURKCE');">Ascii->Tr</a></li>
    <li id="tr2ascii"><a
        onclick="doRequest('zemberek.jsp','TURKCE_ASCII');">Tr->ascii</a></li>
    <li id="hecele"><a onclick="doRequest('zemberek.jsp','HECELE');">Hecele</a></li>
    <li id="ayristir"><a
        onclick="doRequest('zemberek.jsp','SACMALA');">Sacmala</a></li>
</ul>
</div>


<br>
<br>
<br>
<br>
<br>

<form id="form" action="#">
<P align=center><b>Islem yapilacak yaziyi asagidaki alana
giriniz.</b><br>
<textarea name="giris" rows="10" cols="60"></textarea> <input
    type="hidden" name="islem" id="islem" /></P>
</form>

<br>

<div id="div"></div>

</body>
</html>

Answer 1:

简单并具有Jsoup工作液:

String url = "http://zemberek-web.appspot.com/zemberek.jsp?ts=1367326940830&giris=%s&islem=YAZI_COZUMLE";

String query = "MyParamĄĘÓŚŁ";

String formattedUrl = String.format(url, URLEncoder.encode(query, "UTF-8"));

Document document = Jsoup.connect(formattedUrl).get();

String result = document.select("taconite-root > taconite-replace-children > div").text();

System.out.println(result);

结果

MyParam :cozulemedi


Answer 2:

我认为anserw如下,如果你看一下谷歌浏览器developper工具的要求,你会看到,当您点击生成的URL是例如以下内容:

http://zemberek-web.appspot.com/zemberek.jsp?ts=1367076182039&giris=bnfhjfttgfhffgfg&islem=ASCII_TURKCE

giris = bnfhjfttgfhffgfg =>为您发送到服务器的字符串。

所以,你可以在每一个编程语言做以下

http://zemberek-web.appspot.com/zemberek.jsp?ts=1367076182039&giris=MY_STRING&islem=ASCII_TURKCE

不要忘了UTF-8编码您的查询字串

UPDATE

这里是我已经做出了表率

public class MyRequester {

    /**
     * @param args
     */
    public static void main(String[] args) {

        HttpURLConnection conn = null;
        InputStream in = null;

        try {


            String textToSend = "Java is cool :)";
            String urlRequest = "http://zemberek-web.appspot.com/zemberek.jsp?ts=1367076182039&giris="+URLEncoder.encode(textToSend, "UTF-8")+"&islem=ASCII_TURKCE";

            System.out.println(urlRequest+"\n");

            conn = (HttpURLConnection) new URL(urlRequest).openConnection();
            in = conn.getInputStream();

            BufferedReader reader = new BufferedReader(new InputStreamReader(in));
            StringBuilder sb = new StringBuilder();
            String data = null;

            while ((data = reader.readLine()) != null) {
              sb.append(data);
            }

            System.out.println(sb.toString());


        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        finally {

            if(conn != null){
                conn.disconnect();
            }

            if(in != null){
                try {
                    in.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

        }



    }

}

输出在控制台:

http://zemberek-web.appspot.com/zemberek.jsp?ts=1367076182039&giris=Java+is+cool+%3A%29&islem=ASCII_TURKCE

<taconite-root> <taconite-replace-children  contextNodeID="div" parseInBrowser="true"><div> Java <font color="#33AA33">iÅŸ</font> <font color="#FF0033">cool</font> :) </div> </taconite-replace-children> </taconite-root>

从请求的结果是一个XML文档。 根据我的经验,我会用SAX不是Java XML的本机实现。



文章来源: how to post data to an ajax function with Jsoup