Hoe u http-postverzoeken in android uitvoert
HTTP-bericht maakt deel uit van een verouderde HTTP-klassen zoals Org.apache.http en androidhttpclient vanaf Android 5.1. Migreer uw code naar de HTTPURLCONNECTION-klassen die plaatsvinden van functie-functionaliteit.HTTP-post wordt gebruikt in Java om te vragen dat een specifieke webserver die gegevens in een aanvraagformulier wordt ingediend en opslaan. De gegevens worden ingediend en opgeslagen in naam-waardeparen. Voorbeelden van paren zijn: E-mail-Uw e-mailadres- Gebruikersnaam-Uw gebruikersnaam- en wachtwoord-uw wachtwoord.
Stappen
Deel 1 van 2:
Een TRY-blok en HTTPURLConnection-object maken1. Voeg Internet-machtigingen toe aan het Android-manifest. Het Android-manifest is een XML-bestand dat belangrijke informatie biedt aan het Android-systeem dat apparaatcompatibiliteit en toegang tot functies bepaalt. In de "Androidmanifest.XML "-bestand, voer de volgende regel in om internettoegang te bieden.
Android: naam ="Android.toestemming.Internet" />
2. Maak een try-blok. In Java is een try-instructie een uitzonderingshandler die voorkomen dat het programma crasht als het niet in staat is om een actie uit te voeren. Omdat dit een verbinding met een netwerklocatie nodig heeft, krijgt een try-instructie een uitzondering als het niet in staat is om een verbinding tot stand te brengen. U kunt dit toevoegen aan een nieuwe Java-methode.
Probeer {// Enter-statements die uitzonderingen kunnen veroorzaken}
3. Bouw HttpurlConnection en URL-objecten. Java is een objectgeoriënteerde taal. Een object bestaat uit staten en gedragingen die een instantie van een klasse is. Het HTTPURLCONNECTION-object verzendt en ontvangt gegevens via internet. Begin in uw code uw nieuwe methode door een URL-object aan te maken en een URL toe te wijzen voor het HTTPURLConnection-object om verbinding met te maken.
URL URL = Nieuwe URL ("http: // excepturll.com / ") - HTTPURLCONNECTIE-client = (httpurlconnection) URL.OpenConnection ()-
URL URL = Nieuwe URL ("http: // excepturll.com / ") - HTTPURLCONNECTIE-client = null-probeer {client = (httpurlconnection) URL.OpenConnection () -}
Deel 2 van 2:
Het plaatsen van het uitgangsverzoek en het hanteren uitzonderingen1. Stel de aanvraagmethode in om te plaatsen. Om informatie naar de server te verzenden, moet u het type HTTPURLCONNECTION-object instellen om te posten en de uitvoer in te stellen op True met SetDooutPut (). Gebruik de functie SetRequestproperty () om een algemene eigendommen in te stellen die twee elementen vereist, een sleutel met een bekend verzoek van de server en een waarde die zich in de bijbehorende toets bevindt.
- De functie SETREQUESTPROPERTY () wordt gebruikt als de Accept-Codering-aanvraagkopbal om automatische decompressie uit te schakelen.
cliënt.SetRequestMethod ("Post") - Client.SetRequestProperty ("Key", "Waarde") - Client.SetDooutput (TRUE)-
2. Uitvoer de stroom naar de server. U moet de uitvoerstroom van de server aanvragen om naar de uitgangsstroom te kunnen schrijven of te plaatsen, en vervolgens de stroom af te spoelen en te sluiten wanneer u klaar bent.
Outputstream OutlusPost = Nieuwe bufferoutputstream (Client.GetoutPutStream ()) - Writestream (outputpost) -outputpost.flush () - outputpost.dichtbij()-
cliënt.SetfixedLenthstreamingMode (outputpost.Getbytes ().lengte) -client.SetchunkedSreamingMode (0)-
3. Vang eventuele uitzonderingen. Nadat de try-instructie, gebruik het vangstblok om te controleren op een uitzondering voor invoer en uitvoer met IoException, vang een URL-fout met de Malformedurl-uitzondering en controleer of de URL geen reactie op tijd geeft met de Sockettime Outexception.
Catch (Malformedurexception-fout) {// verwerkt een onjuist ingevoerde URL} Catch (SockettimeOutException-fout) {// Handles URL-toegang Time-out.} Catch (IoException Fout) {// verwerkt invoer- en uitvoerfouten}
4. Ontkoppelen van de URL. Nadat u klaar bent met uw URL-verbinding, moet u loskoppelen van de URL. Controleer of u bent aangesloten op een URL voordat u probeert te ontkoppelen.
Eindelijk {if (client != null) // Zorg ervoor dat de verbinding niet null is.cliënt.verbinding verbreken()-}
Tips
Dingen die je nodig hebt
- Java Ide
- Android-ontwikkelingstools (SDK, emulator, enz.)
- Android-ontwikkelaar`s telefoon of ander Android-apparaat (optioneel voor testen)
- Internetverbinding (voor testen)
Deel in het sociale netwerk: