2012-10-07 23 views
7

可能重複:
How to use Servlets and Ajax?Ajax調用在Java客戶端應用程序

我使用下面的代碼在JavaScript中做一個Ajax調用:

function getPersonDataFromServer() { 
     $.ajax({ 
      type: "POST", 
      timeout: 30000, 
      url: "SearchPerson.aspx/PersonSearch", 
      data: "{ 'fNamn' : '" + stringData + "'}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (msg) { 
       ... 
      } 
     }); 
    } 

我會喜歡在Java中也這樣做。基本上,我想編寫一個Java客戶端應用程序,通過Ajax調用將這些數據發送到服務器。

如何在Java中執行Ajax?

+0

你在找什麼是Java中的異步請求? – Prasanth

+0

那麼,我的問題是在java中這個HTTP post請求的實際執行。 –

回答

8

AJAX與其他任何HTTP調用沒有區別。你基本上可以POST從Java相同的URL,它不應該的問題,只要在目標服務器而言:

final URL url = new URL("http://localhost:8080/SearchPerson.aspx/PersonSearch"); 
final URLConnection urlConnection = url.openConnection(); 
urlConnection.setDoOutput(true); 
urlConnection.setRequestProperty("Content-Type", "application/json; charset=utf-8"); 
urlConnection.connect(); 
final OutputStream outputStream = urlConnection.getOutputStream(); 
outputStream.write(("{\"fNamn\": \"" + stringData + "\"}").getBytes("UTF-8")); 
outputStream.flush(); 
final InputStream inputStream = urlConnection.getInputStream(); 

上面的代碼是或多或少相當於你的jQuery AJAX調用。當然,您必須將localhost:8080替換爲實際的服務器名稱。

如果您需要更全面的解決方案,請考慮使用庫和用於JSON編組的

又見

+0

謝謝Tomasz的回覆。但是,我仍然有一個問題! 我想將請求發送到http://www.ratsit.se/BC/SearchPerson.aspx網站。我已閱讀他們的客戶端部分代碼,並瞭解他們正在通過以下方式發送:http://codepaste.net/u7qc1o 現在我想用Java寫這個ajax請求 我做了你在答案中提到的東西:http://codepaste.net/1rbgpx 但仍然沒有,,,你能幫我,請讓我知道什麼是錯的? –

相關問題