Rulați solicitările POST HTTP în Android

HTTP Post a făcut parte din clase HTTP învechite de la Android 5.1, cum ar fi org.apache.http și AndroidHttpClient. Migrați codul la clasele HttpURLConnection, care conțin o funcție de postare. HTTP Post este folosit în Java pentru a solicita ca un anumit server web să primească și să stocheze datele trimise prin intermediul unui formular de cerere. Datele sunt transmise și stocate în perechi de nume și valori. Exemple de astfel de perechi sunt: ​​email-adresa dvs. de email, numele de utilizator-numele de utilizator și parola-parola.

metodă

Partea 1
Creați un bloc de încercare și un obiect HttpURLConnection

  1. 1
    Adăugați permisiune Internet pentru manifestul Android. Manifestul Android este un fișier XML care oferă informații esențiale sistemului Android care determină compatibilitatea dispozitivelor și accesul la caracteristici. În fișierul AndroidManifest.xml, adăugați următoarea linie pentru a acorda acces la Internet.
  2. 2
    Creați un "bloc de încercare". În Java, o instrucțiune de încercare este un handler de excepție care împiedică crasarea programului dacă nu poate acționa. Deoarece aceasta necesită o conexiune la rețea, o instrucțiune de încercare va prinde o excepție dacă nu se poate face nicio conexiune. Puteți adăuga acest lucru la o nouă metodă Java.
    încercați {// introduceți instrucțiuni care pot duce la excepții}
  3. 3
    Creați obiecte HttpURLConnection și URL. Java este un limbaj orientat pe obiecte. Un obiect constă în stări și comportamente care sunt exemple de clasă. Obiectul HttpURLConnection trimite și primește date prin Internet. Porniți noua metodă în codul dvs. creând un obiect URL și atribuindu-i o adresă URL pentru obiectul HttpURLConnection pentru a vă conecta.
    URL url = adresa URL nouă ("https://exampleURL.com/") - HttpURLConnection client = (HttpURLConnection) url.openConnection () -
    • Cel mai bine este să stabiliți obiectul URL și obiectul HttpURLConnection în afara blocului de încercare pentru a facilita capturarea excepțiilor.
    URL url = nouă adresă URL ( "https://beispielURL.com/") - HttpURLConnection client = null try {client = (HttpURLConnection) url.openConnection () -}

Partea 2
Postați Cererea de ieșire și Excepții de manipulare

  1. 1


    Setați metoda de solicitare pentru a "posta". Pentru a trimite informații către server, trebuie să utilizați setDoOutput () pentru a seta tipul obiectului HttpURLConnection la "post" și pentru a seta ieșirea la true. Utilizați funcția setRequestProperty () pentru a specifica o proprietate generică a solicitării care necesită două elemente, o cheie cu o cerere cunoscută de la server și o valoare conținută în cheia corespunzătoare.
    • Funcția setRequestProperty () este folosită ca antet de solicitare de codificare pentru a dezactiva decompresia automată.
    client.setRequestMethod ( "post") - client.setRequestProperty ( "Key", "valoare") - client.setDoOutput (true) -
  2. 2
    Dați fluxul serverului. Trebuie să solicitați stream-ul de ieșire de la server pentru a scrie fluxul de ieșire ("post") și apoi spălați și în cele din urmă să puteți închide.
    ieșire OutputStream post = new BufferedOutputStream (client.getOutputStream ()) - a scrie în flux (output post) -outputPost.flush () - outputPost.close () -
    • Din motive de performanță, este o idee bună să lăsați serverul să știe cât de mare va fi fișierul în octeți. Cea mai bună metodă este setFixedLengthStreamingMode (int) dacă lungimea corpului este cunoscută, în timp ce setChunkedStreamingMode (int) dacă lungimea lui nu este cunoscută. Dacă nu utilizați niciuna dintre metode, obiectul HttpURLConnection va tampona întregul corp din memorie înainte de a fi trimis.
    (. OutputPost.getBytes () lungime) client.setFixedLengthStreamingMode -client.setChunkedStreamingMode (0) -
  3. 3
    Prindeți excepții. Utilizați după declarația încearcă să prindă bloc pentru a verifica cu IOException pe o excepție de la intrare și de ieșire pentru a prinde o eroare de adresă URL cu excepția MalformedURL și pentru a verifica cu SocketTimeout excepție dacă URL-ul nu furnizează un răspuns prompt.
    captură (eroare MalformedURLException) {// Manevrați o adresă URL introdusă incorect} catch (Exception SocketTimeout eroare) {// Manipulați un timp de expirare adresă URL de acces.} catch (IOException eroare) {// Manipulați de intrare și de ieșire de eroare}
  4. 4
    Separați-vă de adresa URL. Odată ce terminați conexiunea URL, va trebui să vă deconectați de la adresa URL. Verificați dacă sunteți conectat la o adresă URL înainte de a încerca o rupere.
    în final {if (client! = null) // asigurați-vă că conexiunea nu este null.client.disconnect () -}

Ce ai nevoie

  • Un IDE Java
  • Instrumente de dezvoltare Android (SDK, emulator etc.)
  • Un telefon cu dezvoltator Android sau alt dispozitiv Android (opțional pentru testare)
  • O conexiune la internet (pentru testare)
Distribuiți pe rețelele sociale:

înrudit