how to post data to an ajax function with Jsoup

2019-08-14 08:44发布

i want to post a string to

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

by Jsoup?.How can I do? here is original site : 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>

2条回答
霸刀☆藐视天下
2楼-- · 2019-08-14 08:49

I think the anserw is the following if you look the request in Google Chrome developper tools you will see that when you click the generated url is the following for example :

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

giris=bnfhjfttgfhffgfg => is your string sent to the server.

So you can do in every programming language this following

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

Don't forget to UTF-8 encode your string for the query string

UPDATE

Here is an example that I've made

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();
                }
            }

        }



    }

}

Output in the console :

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>

The result from the request is a XML document. According to my experience I would use SAX instead of Java XML native implementation.

查看更多
冷血范
3楼-- · 2019-08-14 08:52

Simple and working solution with Jsoup:

Code

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);

Result

MyParam :cozulemedi
查看更多
登录 后发表回答