-
Notifications
You must be signed in to change notification settings - Fork 26
5. HTTP Client
Georgiana Chelu edited this page Jul 3, 2014
·
18 revisions
-
Descarcati biblioteca Android Asynchronous Http Client
-
Copiati fisierul .jar in folderul libs din proiectul vostru.
-
Click dreapta pe proiect -> Properties -> Java Build Path -> Libraries -> Add External Jar -> Selectati fisierul .jar din workspace -> ProiectulMeu -> libs, adaugat anterior.
-
Puneti permisiune la internet in manifest.
<uses-permission android:name="android.permission.INTERNET" />
- Vrem sa verificam daca putem face un request catre un server. Copiati in onCreate codul urmator:
RequestParams params = new RequestParams();
params.put("api_auth", "VECeKU2puHatudreb7A3");
params.put("trigger", "user_profile");
params.put("id_user", "35");
params.put("session", "61ff95571aa3db550df827f0cae10c938cd31fd2");
AsyncHttpClient client = new AsyncHttpClient();
client.post("https://worty.ro/api/", params, new JsonHttpResponseHandler() {
@Override
public void onStart() {
// called before request is started
}
@Override
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
// called when response HTTP status is "200 OK"
System.out.println(response.toString());
}
@Override
public void onFailure(int statusCode, Header[] headers, java.lang.Throwable throwable, JSONObject errorResponse) {
// called when response HTTP status is "4XX" (eg. 401, 403, 404)
System.out.println(errorResponse.toString());
}
@Override
public void onRetry(int retryNo) {
// called when request is retried
}
});
}
Cautati in LogCat tag-ul System.out.println. Raspusul este valid daca arata de forma: {"status": "success","user": {"id": "35","email": "[email protected]"...}}
- In acelasi fel vom face request-uri la serverul implmentat in python pentru magazinul virtual. Va rog sa aveti in fata implementarea in python pentru a nu gresi URL-urile sau parametri.
Sa aveti in vedere urmatoarele aspecte:
- URL-urile voastre vor arata de forma "http://10.0.2.2:5000/api/..."
- Folosim RequestParams pentru a atasa parametrii de tip key:value request-ului.
- Pentru a face GET la server vom apela client.get(URL, JsonHttpResponseHandler), adica exact la fel ca la POST, dar fara argumentul params.
- Daca vrem sa luam o lista de elemente (ca in cazul listei cu id-urile produselor) vom folosi JSONArray in loc de JSONObject.
- Importati JSONAarray si JSONObject astfel:
import org.json.JSONArray;
import org.json.JSONObject;