HTTP POST-i taotluste täitmine Androidis

HTTP Post on osa sellistest HTTP-klassidest nagu org.apache.http ja AndroidHttpClient alates Android 5.1-st. Viige oma kood üle klassidesse HttpURLConnection, mis sisaldab postitamise funktsiooni. HTTP-posti kasutatakse Javas selleks, et taotleda, et konkreetne veebiserver võtaks vastu ja salvestaks päringuvormis esitatud andmeid. Andmed esitatakse ja säilitatakse nime-väärtuse paarides. Paaride näited on järgmised: e-post-teie meiliaadress; kasutajanimi-teie kasutajanimi; ja parool-teie parool.

1
Lisage Androidi manifestile Interneti-load. Androidi manifest on XML-fail, mis annab Android-süsteemile olulist teavet, mis määrab seadme ühilduvuse ja juurdepääsu funktsioonidele. Sisestage Interneti-juurdepääsu võimaldamiseks faili AndroidManifest.xml†järgmine rida.

2
Loo prooviplokk. Javas on try-lause erandikäsitleja, mis takistab programmi kokkujooksmist, kui see ei saa toimingut sooritada. Kuna see nõuab ühenduse loomist võrgu asukohaga, tabab try-lause erandi, kui see ei suuda ühendust luua. Saate selle lisada uude Java-meetodisse. try {//enter laused, mis võivad põhjustada erandeid}

3
HttpURLConnectioni ja URL-i objektide loomine. Java on objektorienteeritud keel. Objekt koosneb olekutest ja käitumisest, mis on klassi eksemplar. Objekt HttpURLConnection saadab ja võtab vastu andmeid Interneti kaudu. Alustage oma koodis uut meetodit, luues URL-i objekti ja määrake sellele URL, millega HttpURLConnection objektile ühenduse loob. URL url = new URL(“http://exampleurl.com/â€); HttpURLConnection client = (HttpURLConnection) url.openConnection(); Parima tava saavutamiseks määrake URL-i ja HttpURLConnectioni objektid väljaspool try-plokki lihtsam tabada erandeid.URL url = new URL(“http://exampleurl.com/â€); HttpURLConnection klient = null; proovige {client = (HttpURLConnection) url.openConnection();}

4
Määrake päringu meetodiks Postita. Teabe saatmiseks serverisse peate määrama objekti HttpURLConnection tüübi postitamiseks ja määrama väljundi väärtuseks Tõene, kasutades setDoOutput(). Funktsiooni setRequestProperty() abil saate määrata üldise päringu atribuudi, mis nõuab kahte elementi: võtit, mille päring on serverilt teada, ja väärtust, mis sisaldub vastavas võtmes. Funktsiooni setRequestProperty() kasutatakse automaatse lahtipakkimise keelamiseks päringu Accept-Encoding päisena. client.setRequestMethod(“POSTâ€);client.setRequestProperty(“Keyâ€,â€Valueâ€);client.setDoOutput(true);

5
Väljastage voog serverisse. Väljundvoogu kirjutamiseks või postitamiseks peate serverilt taotlema väljundvoogu, seejärel loputage ja sulgege voog, kui see on lõpetatud.OutputStream outputPost = new BufferedOutputStream(client.getOutputStream());writeStream(outputPost) ;outputPost.flush();outputPost.close(); Toimivuse huvides on hea anda serverile teada, kui suur on sisu baitides. Parim meetod on setFixedLengthStreamingMode(int), kui keha pikkus on teada, samas kui selle pikkus pole teada, kasutatakse setChunkedStreamingMode(int). Kui ei kasutata kumbagi eelmistest meetoditest, puhverdab objekt HttpURLConnection kogu keha enne edastamist.client.setFixedLengthStreamingMode(outputPost.getBytes().length);client.setChunkedStreamingMode(0);

6
Püüdke kõik erandid kinni. Pärast try-lauset kasutage püüdmisplokki, et kontrollida IOExceptioniga sisendi ja väljundi erandit, tuvastada URL-i tõrge erandiga MalformedURL ja kontrollida, kas URL ei anna SocketTimeoutExceptioniga õigeaegselt vastust. püüdmine(MalformedURLException error) { //Käitleb valesti sisestatud URL-i}catch(SocketTimeoutException error) {//Käitleb URL-i juurdepääsu ajalõpu.}catch (IOExceptioni viga) {//Käitleb sisend- ja väljundvigu}

7
Katkesta ühendus URL-iga. Kui olete URL-i ühenduse loomise lõpetanud, peate ühenduse URL-iga katkestama. Enne ühenduse katkestamist kontrollige kindlasti, kas olete URL-iga ühendatud.lõpuks {if(client != null) // Veenduge, et ühendus poleks null.client.disconnect();}