Activitate de Laborator

Un lucru din ce în ce mai întâlnit este procesarea datelor pe un server în cloud, în timp ce pe dispozitivul de la edge (în cazul nostru, dispozitivul Android) se realizează doar apelarea unui serviciu. Astăzi vom implementa această arhitectură. Scheletul laboratorului.

1a. Din browser, vom verifica în browser funcționarea serverului serverului pentru GET și POST

1b. Să se verifice la linia de comandă functionarea severului

curl  -X  POST  --data 'operation=times&t1=9&t2=2' http://jepi.cs.pub.ro/expr/expr_post.php

curl  "http://jepi.cs.pub.ro/expr/expr_get.php?operation=times&t1=9&t2=2"

echo -e 'GET /expr/expr_get.php?operation=plus&t1=9&t2=2 HTTP/1.1\r\nHost:jepi.cs.pub.ro\r\n\r\n' | nc jepi.cs.pub.ro 80

1c. Studiați implementarea serverului în php sau python http://jepi.cs.pub.ro/expr/. Puteți rula un server local cu GET în python expr_get.py pe portul 8080 pentru a experimenta.

2. Pe baza functionalitatii serverului, se cere să se implementeze in Android un calculator, care suportă operațiile de adunare/scădere/înmulțire/împărțire a două numere reale, pe baza rezultatului furnizat de un serviciu web, accesibil prin HTTP, la adresele Internet specificate în interfața Constants, pentru fiecare dintre metodele suportate pentru transmiterea informațiilor:

  • GET: Constants.GET_WEB_SERVICE_ADDDRESS
  • POST: Constants.POST_WEB_SERVICE_ADDRESS

Cele două numere reale sunt specificate în cadrul unor câmpuri text. În situația în care unul dintre acestea nu este precizat, se va afișa un mesaj de eroare corespunzător.

Operația care se dorește a fi efectuată precum și metoda prin care vor fi transmise informațiile către serviciul web vor putea fi selectate prin intermediul unor liste.

Parametrii ce trebuie incluși în cadrul cererii HTTP sunt:

operation = plus|minus|divide|times
t1 = număr real
t2 = număr real

De exemplu, http://jepi.cs.pub.ro/expr/expr_get.php?operation=times&t1=9&t2=2 pentru a inmulti 9 cu 8.

În cadrul unui câmp text va putea fi vizualizat răspunsul HTTP furnizat de serviciul web.

3. Vom extinde aplicatia cu un textview care afiseaza un citat motivational. Vom adauga un buton care face un request la adresa https://dummyjson.com/quotes, si afiseaza intr-un textview primul citat din JSON-ul returnat.

4. Să se salveze într-o bază de date SQLite toate operațiile executate de utilizator. Se va adăuga un nou buton în aplicație și la apăsarea acestuia, istoricul va fi afișat în Logcat.