|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu | Vrste prikaza |
17.7.2013, 11:43 | #1 |
Član
Član od: 14.2.2009.
Lokacija: Banja Luka
Poruke: 35
Zahvalnice: 9
Zahvaljeno 0 puta na 0 poruka
|
Web Servis i Android
Kako da napravim web servis koji ce biti povezan sa android aplikacijom?
Aplikacija mora da prima i salje podatke na web sajt koji treba da napravim, pa kako to sve da povezem? Sta mi treba, kako da to napravim i moze primjer koda kako bi to trebalo da izgleda? Hvala |
17.7.2013, 15:23 | #2 |
Veteran
|
Re: Web Servis i Android
Najjednostavnije resenje je da napravis php stranicu (stranice) koja ce iz URL-a da preuzima parametre, upisuje u bazu i/ili vrsi citanje iz nje.
To je lako savladati, ali nije bas toliko kratko da mogu sve da ti sada objasnim. Dacu ti neke smernice. Kljucne reci za pretragu koje ce ti trebati su: PHP, MySQL, HTTP GET, Android http request/response. Ovo se moze podeliti u dve odvojene celine: server i klijent. Na serverskoj strani imas php i MySQL, na klijentskoj Android a komunikaciju obavljas putem HTTP Request/Response-a. Prvo ti savetujem da napravis serversku stranu i da to testiras. Za uslove testiranja dovoljno ce biti da napravis php stranu koja ce da pokupi 2 podatka iz URL-a, upise ih u bazu i prikaze neku poruku. Procitaces detaljnije, ali kada koristis HTTP Get metodu za request-response onda se vrednosti promenljivih salju u okviru URL-a, npr: www.mysite.com/myphp.php?val1=123&val2=321 Znaci ovde na svom sajtu imas myphp.php stranu kojoj prosledjujes dva parametra (val1 i val2). I npr ako ti ovako izgleda stranica myphp.php: Kod:
<?php $val1 = $_GET['val1']; $val2 = $_GET['val2']; print $val1; Print " "; print $val2; ?> U kodu php stranice mozes da stavis neke operacije sa bazom, zavisno od toga sta ti treba. I ovo ti je serverska strana. Za testiranje serverske strane ti nije potrebna Android aplikacija, mozes da testiras iz svog browser-a tako sto ces pozivati odgovarajuci URL sa odgovarajucim prosledjenim parametrima. Na android strani dovoljan ce ti biti sledeci kod: Kod:
byte[] data; HttpGet httpget; StringBuffer buffer = null; HttpResponse response; HttpClient httpclient; InputStream inputStream; try { httpclient = new DefaultHttpClient(); httpget = new HttpGet(www.mysite.com/myphp.php?val1=123&val2=321); response = httpclient.execute(httpget); inputStream = response.getEntity().getContent(); data = new byte[256]; buffer = new StringBuffer(); int len = 0; while (-1 != (len = inputStream.read(data))) {buffer.append(new String(data, 0, len));} inputStream.close(); }catch (Exception e) {System.out.println(e);} Ovo je stari neki kod, trebao bi da funkcionise. Mozda postoje neka nova eneganija resenja, neke nove klase, paketi ili sta vec (ako ti treba potrazi, kljucna rec Android call HTTP Get). Jos jedna bitna stvar, da bi ti aplikacija funkcionisala na androidu 4+ sve network operacije moras da pozoves uokviru odvojenog threada ili async taksa. Ovo je najjednostavnije resenje koje mi pada napamet. Ako hoces nesto malo komplikovanije prvo mozes da koristis HTTP POST umesto HTTP GET-a. Onda, serverska strana moze da implementira ReST, da podatke saljes u okviru JSON-a ili XML-a, a onda da uz sve to da ukljucis i Google App Engine. Postoji milion nacina, ali ako se secam ovo ti je za neki seminarski pa ne moras preterano da komplikujes. |
Sledeći korisnik se zahvaljuje korisniku Ivan452 na korisnoj poruci: | ||
Milinko (22.7.2013) |
17.7.2013, 15:52 | #3 |
V.I.P. Programiranje
|
Re: Web Servis i Android
^ Slažem se sa svime, samo bih da napomenem da je preporučljivije da za takvo slanje podataka koristi HTTP POST. Možda u 90% slučajeva to neće praviti neku razliku, ali ako se šalje dosta podataka HTTP serveru može da se desi da zabode limit koji server postavlja za dužinu URL-a, dok se sa POST podacima to ne dešava. Česta praksa je da se za zahteve koji ne menjaju ništa na serveru koristi GET, a za zahteve koji predstavljaju neku akciju i nisu pasivni koristi POST. Ali ako pravi HTTP API ništa ga ne košta da sve bude POST
|
17.7.2013, 16:22 | #4 | |
Veteran
|
Re: Web Servis i Android
Citat:
Zato sam ga stavio kao eventualno dodatno poboljsanje. |
|
Sledeći korisnik se zahvaljuje korisniku Ivan452 na korisnoj poruci: | ||
Geomaster (17.7.2013) |
17.7.2013, 16:23 | #5 | |
V.I.P. Programiranje
|
Re: Web Servis i Android
Citat:
|
|
22.7.2013, 13:41 | #6 |
Član
Član od: 14.2.2009.
Lokacija: Banja Luka
Poruke: 35
Zahvalnice: 9
Zahvaljeno 0 puta na 0 poruka
|
Re: Web Servis i Android
Uspio sam, hvala vam.
|
23.7.2013, 4:28 | #7 |
Veteran
|
Re: Web Servis i Android
Preporucio bih ti nesto kao sto je Laravel. On podrzava nesto sto se zove restful routing. Lako mozes da napravis restful API. Takodje mozs da output-ujes JSON pomocu Response::json(...) ili od L4 mozes da samo vratis skup modela i on ce da ti prikaze json.
Evo ti jedan tutorial http://net.tutsplus.com/tutorials/ph...a-restful-api/ Znam da je malo teze posto mozda nisi radio sa MVC-om ali mnogo je bolje. |
Sledeći korisnik se zahvaljuje korisniku Ivan-94 na korisnoj poruci: | ||
Milinko (23.7.2013) |
23.7.2013, 16:25 | #8 |
Član
Član od: 14.2.2009.
Lokacija: Banja Luka
Poruke: 35
Zahvalnice: 9
Zahvaljeno 0 puta na 0 poruka
|
Re: Web Servis i Android
OK, pogledacu. Hvala
|
Bookmarks sajtovi |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
[Android] Android telefon sa Qwerty ? | Sladjan85 | Aparati i oprema | 17 | 4.6.2013 23:19 |
[Android] AIDE - Android Java IDE | MG-RAY | Programi za mobilne telefone | 0 | 10.3.2012 11:07 |
MSI servis 72h 'Pick-up and Return' - Katastrofa! | igvan | Prenosni računari | 12 | 19.2.2011 1:49 |
Windows Mobile > Android 2.1 | markos807 | Aparati i oprema | 10 | 23.1.2011 17:07 |
Vip Android izazov (prijave do 31. decembra 2009) | Chivan | Dešavanja i događaji | 0 | 1.12.2009 17:13 |