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 objekt1. 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 ()-
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 undtagelser1. 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()-
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 :