问题
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>
回答1:
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
回答2:
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.
来源:https://stackoverflow.com/questions/16253731/how-to-post-data-to-an-ajax-function-with-jsoup