En HTTP -forespørsel refererer til en handling utført av en HTTP -klient på en spesifikk HTTP (Protocol) ressurs. Ressursen er hovedsakelig identifisert av en URL som et domenenavn eller en IP -adresse.
HTTP -forespørsler er en av de mest byggesteinene på det moderne nettet. Ved hjelp av HTTP -forespørsel kan vi be om ressurser som websider, videoer, bilder og andre filer fra en ekstern server.
I denne artikkelen lærer vi hvordan du bygger en grunnleggende HTTP -klient ved hjelp av Go Programmeringsspråket.
Krav
I denne artikkelen trenger du følgende ressurser:
Http få
Den første metoden vi skal implementere er http get -metoden. En GET -metode lar oss be om data fra en spesifisert ressurs. For eksempel når vi trenger å hente artikler fra Linuxhint.com server, vi bruker en get -metode.
Det første trinnet er å sikre at du konfigurerer prosjektet ditt. Hvis du ikke er kjent med hvordan du oppretter og jobber med et Go -prosjekt, kan du sjekke opplæringen vår om å installere GO.
Når prosjektet er opprettet, åpner du hovedfilen din og importer NET/HTTP -pakken fra Go Standard Library.
Net/HTTP -pakken gir oss funksjonaliteten og verktøyene for å komme med HTTP -forespørsel til eksterne servere.
Importer nett-/http -pakken ved å legge til linjen nedenfor i GO -filen.
import (I nett-/http -pakken er det en GET -metode som lar oss lage HTTP Get Methods. Funksjonssyntaks er som vist nedenfor:
func get (url streng) (resp *respons, feilfeil)Funksjonen tar en URL som argument og returnerer responsen som en peker på strukturen og en feil (hvis noen).
Hvis metoden ikke møter en feil, inneholder responsen som returneres svarorganet fra den forespurte ressursen.
For å bruke GET -metoden, kan vi lage kode som vist:
Resp, feil: = http.Få ("https: // api.SpaceXData.com/v4/lanseringer/siste ")I eksemplet over kaller vi get -metoden og gir URL -en til ressursen vi ønsker å få tilgang til som en streng.
I vårt eksempel bruker vi SpaceX API.
Som du vil legge merke til, returnerer funksjonen to verdier som vi lagrer i to variabler: RESP og feil som holder den returnerte responsen og feilen.
Husk at Resp inneholder ingenting annet enn en peker til strukturen som holder de faktiske dataene. Derfor, hvis vi prøver å skrive ut det, vil vi få en haug med virvlete data.
En eksempelutgang fra forespørselen ovenfor er som vist nedenfor:
For at vi skal se de faktiske dataene, må vi få tilgang til kroppseiendommen på strukturen som er returnert. Vi må da lese den og skrive den ut til konsollen, eller lagre den i en fil.
For dette kan vi bruke ioutil.Readme -metoden. Denne metoden er definert i Ioutil -pakken. Det returnerer responsorganet og en feil.
Merk: Etter å ha lest responsorganet, må vi lukke det for å unngå hvis fra å låse andre operasjoner i programmet ditt.
Vi kan gjøre dette ved å stille den nære metoden som skal kjøres etter at hovedfunksjonen er finbi. Utsett nøkkelordet i go kommer i hånden.
Resp.Kropp.Lukk () lar oss lukke responsorganet etter å ha lest. Når vi har lest responsorganet, kan vi skrive det ut til konsollen som implementert i koden nedenfor:
Sjekk ut opplæringen vår om Golang utsett å lære mer
pakkehovedOvennevnte kode implementerer en HTTP -klient i å gå i stand til å gjøre http få forespørsel til den spesifiserte metoden.
Et eksempel på returverdien er som vist:
For bedre lesbarhet kan du formatere responsen til Readable-Json-format eller utføre marskalk og unmarshal for å velge ønsket utgang.
Sjekk opplæringen vår om Json Marshal og Unmarshal for å lære mer.
HTTP -innlegg
Den neste delen av en HTTP -klient lager postmetode. En HTTP -metode lar deg sende data til serveren og utføre en handling på den spesifiserte ressursen. Dette kan skape, slette eller oppdatere en ressurs.
I GO kan vi komme med etterforespørsel ved hjelp av NET/HTTP -pakken. Det gir oss postmetoden, slik at vi kan sende data til en server.
Funksjonssyntaks er som vist nedenfor:
func post (url, contenttype string, body io.Leser) (resp *respons, feilfeil)Funksjonen tar tre argumenter:
Funksjonen skal deretter returnere responsen og en feil. Husk at vi må konvertere dataene for å sende til serveren til et akseptabelt format. Vi kan gjøre dette ved å konvertere JSON -dataene til IO.Leser, som i utgangspunktet er et grensesnitt i go.
Sjekk kildekoden for å lære mer.
Konvertere JSON -data til IO.Lesertypen involverer to trinn:
Den første er å kode JSON -dataene i byte -format. Vi kan gjøre dette av Json Marshaling som diskutert i vår opplæring.
Når vi er kodet, kan vi konvertere dataene til type som implementert av IO.Lesergrensesnitt ved hjelp av nybuffermetoden. Denne metoden returnerer IO.Lesertype som vi deretter kan gi til postmetoden.
En prøvekodeblokk er som vist nedenfor:
Body, _: = json.Marskalk (kart [streng] strengNår vi har alle delene i orden, kan vi påkalle POST -metoden til den spesifiserte ressursen. Husk at denne opplæringen bruker dummy data og lenker.
pakkehovedOvennevnte metode implementerer en enkel HTTP -klient som kan lage HTTP -postmetoder til en spesifisert ressurs.
Konklusjon
Denne artikkelen viser deg hvordan du bygger en grunnleggende HTTP -klient ved hjelp av Go -programmeringsspråket. Go er usedvanlig raskt når det gjelder HTTP -servering. Ved å bruke kunnskapen i denne artikkelen, kan du utvide klienten til en fullførselsapplikasjon.
Fortsett koding.