簡體   English   中英

Android - Java 中的 AJAX

[英]Android - AJAX in Java

我想知道如何調用一個函數,就像在 jQuery 中一樣,然后在 Java 中(對於本機 Android 應用程序)。

$.ajax({
  url:"http://test.com/read_mySQL.php",
  method:"POST",
  data:{username:uname_field,password:upass_field},
}).success(function(response){
  if (response=="correct"){
    alert("You are now logged in");
  }
});

以上是 JavaScript 的代碼,但我想知道代碼在 Java 中會是什么樣子。

謝謝!

對於 Android,您可以使用OkHttp

那里的一個例子

public static final MediaType JSON
    = MediaType.parse("application/json; charset=utf-8");

OkHttpClient client = new OkHttpClient();

String post(String url, String json) throws IOException {
  RequestBody body = RequestBody.create(JSON, json);
  Request request = new Request.Builder()
      .url(url)
      .post(body)
      .build();
  Response response = client.newCall(request).execute();
  return response.body().string();
}

更新

請閱讀這篇文章Using OkHttp ,尤其是Asynchronous Network Calls 因為您將需要異步執行請求。

參考《使用OKHttp,AsyncTask中同步請求和OKhttp異步請求有什么區別?》 有關為什么比使用OkHttp優於AsyncTask更可取的一些附加說明。

AJAX - 異步 JavaScript 和 XML

顧名思義,ajax 屬於 JavaScript。 您應該使用本機 android 庫來發出請求。

我建議將OkHttp (Http 客戶端)與Retrofit 2結合使用(允許簡單的異步調用,如 ajax 等等)。

正如我所研究的那樣,AsyncTask 是用於調用另一個線程(后台運行)的,那么它是否也用於 AJAX?

不可以。但是新 Android 版本 (4.x) 中的任何HTTP 調用都需要在 AsyncTask 中調用。
而且,你需要 android.INTERNET 許可。
否則,它不會工作。
有關更多信息,您可以閱讀以下內容:
簡單的 Android GET 和 POST 請求示例
http://codeproject.com/Tips/1034468/Android-Simply-Sending-HTTP-GET-POST-Requests-To-S

如上所述,AJAX 代表異步 JavaScript 和 XML。 要在 Java Android 中創建 httpRequest,我強烈建議使用 Volley 庫和單例模式: https ://developer.android.com/training/volley/request

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM