我想用某些參數調用servlet並接收響應。代碼是用Java編寫的。 什麼是最好(最乾淨)的方式來做到這一點?如何從Java代碼調用servlet
另外,我可以調用一個servlet並繼續使用代碼等待servlet完成(關閉連接並「忘掉它」)嗎?從here
我想用某些參數調用servlet並接收響應。代碼是用Java編寫的。 什麼是最好(最乾淨)的方式來做到這一點?如何從Java代碼調用servlet
另外,我可以調用一個servlet並繼續使用代碼等待servlet完成(關閉連接並「忘掉它」)嗎?從here
更好的使用Apache的HttpClient API用於處理和通信的servlet
http://hc.apache.org/httpcomponents-client-ga/index.html
特點:
例子:
import java.net.*;
import java.io.*;
public class URLConnectionReader {
public static void main(String[] args) throws Exception {
URL yahoo = new URL("http://www.yahoo.com/");
URLConnection yc = yahoo.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}
}
從你的角度,servlet的只是一些服務器上的URL。至於沒有等待迴應 - 請閱讀Java線程。但是,如果不等待servlet完成,就無法關閉HTTP連接,因爲這可能導致servlet失敗。只需在一個單獨的線程中等待響應,如果無關緊要,就放棄它。
我是否需要等待迴應(如果解決方案使用線程,比答案仍然是 - 我必須等待答案)。將參數傳遞給servlet怎麼樣?我是否必須自己填寫網址(使用'?'和'&')還是有更清晰的方法? – 2011-05-03 07:14:12
你可以使用Apache的HttpClient Apache HttpClient
這也非阻塞I/O提供NIO extensions
這裏的功能是爲Apache HttpComponents一個Tutorial。
您也可以嘗試Jetty或Async Http Client
我真的很討厭那些沒有評論的人。這是平衡力量的積極因素。 – Nico 2012-06-01 15:41:54
對我來說this最短,最有用的教程的Apache HttpClient。
如果您想繼續使用應用程序的其他部分,您可以將您的請求轉換爲單獨的「線程」。 另請參閱:http://stackoverflow.com/questions/4349854/calling-a-servlet-from-a-java-application – Catchwa 2011-05-03 07:13:44
「什麼是最好(最乾淨)的方式來做到這一點」什麼是*最好*或*最乾淨*的意思。 – Raedwald 2014-07-28 12:28:55