2016-01-13 2 views
1

Мне интересно, как вызвать функцию, как в jQuery, но затем в Java (для собственного приложения для Android).Android - AJAX в Java

$.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.

Спасибо!

+0

использование [AsyncTask] (http://developer.android.com/reference/android/os/AsyncTask.html) –

+0

Как я изучал, AsyncTask предназначен для вызова другого потока (фоновый запуск), поэтому он также используется для AJAX? Извините за мою плохую английскую грамматику .. –

ответ

2

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

Update

Plase, прочитайте эту статью Using OkHttp, espessially Asynchronous Network Calls. Из-за того, что вам нужно будет выполнять запросы асинхронно.

См. "Using OKHttp, what is the difference between synchronous request in AsyncTask and OKhttp Asynchronous request?" для получения дополнительной информации о том, почему предпочтительнее использовать OkHttp по сравнению с AsyncTask.

+0

спасибо! Я думаю, что это работает! –

+0

@SyamsoulAzrien Добро пожаловать. Я обновляю свой ответ с помощью некоторых дополнительных ссылок. –

2

AJAX - Асинхронный JavaScript и XML

Как имя указано AJAX принадлежит JavaScript. Для выполнения ваших запросов вы должны использовать собственную андроидную библиотеку.

Предлагаю использовать OkHttp (Http Client) в сочетании с Retrofit 2 (позволяет легко асинхронные вызовы типа ajax и многое другое).

1

Как я учился, AsyncTask для вызова другого потока (фон бега), так, как он используется для AJAX также?

No. Но любые HTTP вызовов в новом Android версии (4.x) должны называться в AsyncTask.
А также вам необходимо разрешение android.INTERNET.
Иначе это не сработает.
Для получения дополнительной информации, вы можете прочитать:
Просто Android GET & POST Requests Примеры
http://codeproject.com/Tips/1034468/Android-Simply-Sending-HTTP-GET-POST-Requests-To-S

+0

Хорошо спасибо ...... –

+0

API 11 = 3,0 не 4.x :) – Selvin

+0

@ Селвин, спасибо, но это не так важно. Я вижу только устройства 2.3.x и 4.x в магазинах. – Simus