Sådan implementeres HTTP-postanmodninger på Android
HTTP POST-anmodninger er afgørende for enhver Android-applikation, der bruger internettet. Alt du skal gøre er at implementere funktionaliteten.
HTTP POST-anmodninger er afgørende for enhver Android-applikation, der bruger internettet. Alt du skal gøre er at implementere funktionaliteten.
HttpClient klient = ny DefaultHttpClient () -
HttpPost post = ny HttpPost (adresse) -
Liste par = ny ArrayList() -
pairs.add (new BasicNameValuePair ("key1", "value1"))
pairs.add (new BasicNameValuePair ("key2", "value2")) -
post.setEntity (nye UrlEncodedFormEntity (par)) -
HttpResponse response = client.execute (post) -
Metode 2: Brug af et Json-objekt trin: I stedet for at bruge NameValuePair kan du simpelthen oprette et jSon-objekt og konvertere det til streng ved afsendelse.
Hvis du skal sende en postanmodning som denne simple anmodning om et par værdier og nøgler, se eksemplet:{
"email": "[email protected]",
"old_passw": 306,
"use_id": 123,
"new_passw": 456
}
1 Opret en json-objekt og anbring værdien og nøgleparne kortlagt af serveren.JSONObject jsonobj = nyt JSONObject () -
jsonobj.put ("email", "[email protected]") -
jsonobj.put ("old_passw", "306") -
jsonobj.put ("use_id", "123") -
jsonobj.put ("new_passw", "456") -
2 Opret en http-klient og post-URL.DefaultHttpClient httpclient = ny DefaultHttpClient () -
HttpPost httppostreq = ny HttpPost ("your_server_url") -
3 Opret en streng. Strengen tilføjes til webadressen i det format, der anmodes om af HTTP POST.
StringEntity if = new StringEntity (jsonobj.toString ()) -
4 Denne del er valgfri og avanceret, og du kan springe over den, hvis det ikke er meget vigtigt at erklære en charset.se.setContentType ("application / json-charset = UTF-8") -
se.setContentEncoding (ny BasicHeader (HTTP.CONTENT_TYPE, "application / json-charset = UTF-8"))
5 Konfigurer virksomheden i postanmodningen.httppostreq.setEntity (se) -
6 Udfør POST-anmodningen.HttpResponse httpresponse = httpclient.execute (httppostreq) -
7 For at modtage svaret fra serveren efter at HTTP POST er udført. Indtast en trycatch-blok.String responseText = null-
prøv {
responseText = EntityUtils.toString (httpresponse.getEntity ()) -
} catch (ParseException e) {
e.printStackTrace () -
Log.i ("Parse Exception" og + "") -
}
8 Få svarstrengen i det nye jSON-objekt og dets værdier. Udført! ` Udført! ` JSONObject json = nyt JSONObject (responseText) -
Hvis du har brug for en postanmodning med objektet inde i hovedstrukturen, skal du gøre følgende:{
"anmodning": {
"email": "[email protected]",
"old_passw": 306,
"use_id": 123,
"new_passw": 456
}
}
Skift det første skridt på denne måde. 1 `Opret et indre jSON objekt og udfyld det.`JSONObject header = nyt JSONObject () -
header.put ("email", "[email protected]") -
header.put ("old_passw", "306") -
header.put ("use_id", "123") -
header.put ("new_passw", "456") -
2 Opret et nyt jSON-objekt (yderste, med "request" -tasten) og sæt det indre jSON inde i det som en værdi af "request" -tasten.
JSONObject jsonobj = nyt JSONObject () -
jsonobj.put ("request", header) -