Hoe om http-posversoeke in android uit te voer

HTTP-pos is deel van `n afgekeurde HTTP-klasse soos Org.appache.http en androidhttpclient as van Android 5.1. Migreer u kode na die httpurlkonneksie klasse wat insluit die posfunksie.HTTP-pos word in Java gebruik om te versoek dat `n spesifieke webbediener data wat binne `n versoekvorm ingedien is, ontvang en stoor. Die data word ingedien en gestoor in naam-waarde pare. Voorbeelde van pare sluit in: Email-jou e-pos adres-gebruikersnaam-jou gebruikersnaam- en wagwoord-jou wagwoord.

Stappe

Deel 1 van 2:
Skep `n Probeer Blok- en Httpurlconnection-voorwerp
1. Voeg internettoestemmings by die Android-manifest. Die Android-manifes is `n XML-lêer wat belangrike inligting verskaf aan die Android-stelsel wat toestelversoenbaarheid en toegang tot funksies bepaal. In die "Androidmanifest.XML "Lêer, voer die volgende reël in om toegang tot die internet te verskaf.
 Android: Naam ="Android.toestemming.Internet" />
  • 2. Skep `n Probeer Blok. In Java is `n toetsverklaring `n uitsondering hanteerder wat sal verhoed dat die program gekraak word as dit nie `n aksie kan uitvoer nie. Omdat dit `n verbinding met `n netwerk-plek sal vereis, sal `n toetsverklaring `n uitsondering kry as dit nie `n verbinding kan vestig nie. U kan dit by `n nuwe Java-metode byvoeg.
    probeer {// voer stellings in wat uitsonderings kan veroorsaak
  • 3. Bou httpurlkonneksie en URL-voorwerpe. Java is `n objekgeoriënteerde taal. `N Voorwerp bestaan ​​uit state en gedrag wat `n voorbeeld van `n klas is. Die httpurlconnection-voorwerp stuur en ontvang data oor die internet. Begin in u kode u nuwe metode deur `n URL-voorwerp te skep en gee dit `n URL vir die httpurlconnection-voorwerp om aan te sluit.
    URL URL = Nuwe URL ("http: // -voorbeeld.com / ") - httpurlconnection client = (httpurlconnection) url.OpenConnection ()-
  • Vir die beste praktyk, vestig die URL en httpurlkonneksie voorwerpe buite die probeer blok om dit makliker te maak om uitsonderings te vang.
  • URL URL = Nuwe URL ("http: // -voorbeeld.com / ") - httpurlconnection client = null-probeer {client = (httpurlconnection) url.OpenConnection () -}
    Deel 2 van 2:
    Pos die uitsetversoek en hantering van uitsonderings
    1. Stel die versoek metode om te plaas. Ten einde inligting aan die bediener te stuur, moet u die tipe httpurlconnection-voorwerp se tipe instel om te pos en stel die uitset in die gebruik van steldo upput (). Gebruik die SetRequestProperty () funksie om `n algemene versoek eiendom te stel wat twee elemente benodig, `n sleutel met `n bekende versoek van die bediener en `n waarde wat in die ooreenstemmende sleutel vervat is.
    • Die SetRequestProperty () funksie word gebruik as die aanvaar-enkodering-versoekopskrif om outomatiese dekompressie uit te skakel.
    kliënt.setrequestMethod ("Post") - Kliënt.setrequestproperty ("sleutel", "waarde") - kliënt.Setdooutput (True)-
  • 2. Uitset die stroom na die bediener. U moet die uitsetstroom van die bediener versoek om in staat te wees om aan die uitsetstroom of pos te kan skryf, dan spoel en sluit die stroom wanneer dit klaar is.
    OutputStream OutputPost = Nuwe BufferedOutputStream (Kliënt.GetOutputStream ()) - Writestream (OutputPost) -Outpostpost.Spoel () - Uitsetpost.naby()-
  • Vir prestasie redes is dit `n goeie idee om die bediener te laat weet hoe groot in grepe die inhoud sal wees. Die beste metode is SetfixedLengthStreamingMode (Int) wanneer die liggaamslengte bekend is, terwyl SetchunkedstreamingMode (Int) gebruik word indien dit nie bekend is nie. Nie een van die vorige metodes gebruik nie, veroorsaak dat die httpurlconnection-voorwerp die volledige liggaam in die geheue buffer voordat dit oorgedra word.
  • kliënt.SetFixedLengthStreamingMode (OutputPost.getbytes ().lengte) -Client.SetchunkedstreamingMode (0)-
  • 3. Vang enige uitsonderings. Gebruik na die toetsverklaring om die vangblok te gebruik om `n uitsondering vir insette en uitset met iOsexception te kontroleer, `n URL-fout met die Malformedurl-uitsondering te vang en te kontroleer of die URL nie `n reaksie betyds met die SocketTimeOutxception bied nie.
    Vang (Malformedurlexception Fout) {// hanteer `n verkeerde ingevoerde URL} vang (SocketTimeOutxception Error) {// handvatsels URL toegang Tydout.} vang (iOexception fout) {// handvatsels insette en uitvoer foute}
  • 4. Ontkoppel van die URL. Nadat jy klaar is met jou URL-konneksie, sal jy van die URL moet ontkoppel. Maak seker dat jy seker maak dat jy aan `n URL gekoppel is voordat jy probeer om te ontkoppel.
    Ten slotte (indien (kliënt != null) // Maak seker dat die verbinding nie nul is nie.kliënt.Ontkoppel () -}
  • Wenke

    Dinge wat jy sal nodig hê

    • Java IDE
    • Android-ontwikkelingsinstrumente (SDK, emulator, ens.)
    • Android-ontwikkelaar se telefoon of ander Android-aangedrewe toestel (opsioneel vir toetsing)
    • Internet konneksie (vir toetsing)
    Deel op sosiale netwerke:
    Soortgelyk