Sådan udfører du http post-anmodninger i android

HTTP POST er en del af en afskrivet HTTP-klasser som org.Apache.http og androidhttpclient som Android 5.1. Migrere din kode til httpurlconnection klasserne, som omfatter udstationering af funktionalitet.HTTP POST bruges i Java for at anmode om, at en bestemt webserver modtager og gemmer data indsendt inden for en forespørgselsformular. Dataene indsendes og opbevares i navneværdipar. Eksempler på par inkluderer: Email-din e-mail-adresse-brugernavn-dit brugernavn- og adgangskode-dit kodeord.

Trin

Del 1 af 2:
Oprettelse af en prøve blok og httpurlconnection objekt
1. Tilføj internettilladelser til Android Manifest. Android Manifest er en XML-fil, der giver vigtige oplysninger til Android-systemet, der bestemmer enhedens kompatibilitet og adgang til funktioner. I "Androidmanifest.XML "-fil, indtast følgende linje for at give internetadgang.
 Android: Navn ="android.tilladelse.Internet" />
  • 2. Opret en prøveblok. I Java er en prøveopgørelse en undtagelseshåndterer, der forhindrer programmet i at kollidere, hvis det ikke er i stand til at udføre en handling. Fordi dette vil kræve en forbindelse til en netværksplacering, vil en prøveopgørelse fange en undtagelse, hvis den ikke er i stand til at etablere en forbindelse. Du kan tilføje dette til en ny Java-metode.
    Prøv {// indtast sætninger, der kan forårsage undtagelser}
  • 3. Byg httpurlconnection og URL objekter. Java er et objektorienteret sprog. Et objekt består af stater og adfærd, som er en forekomst af en klasse. Httpurlconnection-objektet sender og modtager data via internettet. I din kode skal du starte din nye metode ved at oprette et URL-objekt og tildele den en URL til HTTPURLConnection-objektet for at oprette forbindelse til.
    URL URL = NEW URL ("http: // exampleurl.com / ") - httpurlconnection klient = (httpurlconnection) url.openconnection ()-
  • For bedste praksis etablerer webadresserne og httpurlconnection-objekter uden for prøveblokken for at gøre det lettere at fange undtagelser.
  • URL URL = NEW URL ("http: // exampleurl.com / ") - httpurlconnection client = null-try {client = (httpurlconnection) url.openconnection () -}
    Del 2 af 2:
    Udstationering af outputanmodning og håndtering af undtagelser
    1. Indstil anmodningsmetoden til at skrive. For at sende oplysninger til serveren skal du indstille httpurlconnection-objektets type til at skrive og indstille udgangen til TRUE ved hjælp af SetDoOutput (). Brug funktionen Setrequestproperty () til at indstille en generel anmodning Ejendom, der kræver to elementer, en nøgle med en kendt forespørgsel fra serveren og en værdi, der er indeholdt i den tilsvarende nøgle.
    • Funktionen Setrequestproperty () bruges som den accept-kodende forespørgselshoved for at deaktivere automatisk dekompression.
    klient.setrequestmethod ("post") - klient.setrequestproperty ("nøgle", "værdi") - klient.setdooutput (true)-
  • 2. Udfør strømmen til serveren. Du skal anmode udgangsstrømmen fra serveren for at kunne skrive til udgangsstrømmen eller skrive, og derefter skylle og lukke strømmen, når den er færdig.
    Outputstream Outputpost = Ny BufferedOutOutStream (klient.getOutputstream ()) - Writestream (outputpost) -outputpost.Flush () - Outputpost.tæt()-
  • Af præstationsgrunde er det en god ide at lade serveren vide, hvor stor i byte indholdet vil være. Den bedste metode er setfixedlengthstreamingmode (int), når kropslængden er kendt, mens setchunkedstreamingmode (int) anvendes, hvis den er længde ikke kendt. Hvis du ikke bruger nogen af ​​de tidligere metoder, får HTTPULCONNECTION-objektet til at buffer den komplette krop i hukommelsen, inden de overføres.
  • klient.setfixedlengthstreamingmode (outputpost.getbytes ().længde) -client.setchunkedstreamingmode (0)-
  • 3. Fange eventuelle undtagelser. Efter forsøgsopgørelsen skal du bruge fangstblokken for at kontrollere en undtagelse for input og output med IOException, fange en URL-fejl med MalformedURL-undtagelsen og kontrollere, om webadressen ikke giver et svar i tide med SocketTimeOutException.
    Catch (Malformedurlexception Error) {// Håndterer en forkert indtastet URL} Catch (SocketTimeOutException Fejl) {// Håndter URL Access Timeout.} fangst (ioException fejl) {// håndterer input og output fejl}
  • 4. Afbryd forbindelsen fra webadressen. Når du er færdig med din URL-forbindelse, skal du afbryde forbindelsen fra webadressen. Sørg for at kontrollere, at du er tilsluttet en URL, før du forsøger at afbryde forbindelsen.
    endelig {hvis (klient != null) // Sørg for, at forbindelsen ikke er null.klient.koble fra()-}
  • Tips

    Ting du skal bruge

    • Java IDE
    • Android Development Tools (SDK, Emulator osv.)
    • Android Developer`s Phone eller Anden Android Powered Device (Valgfri til testning)
    • Internetforbindelse (til test)
    Del på sociale netværk :
    Lignende