Python-anmodninger: Alt hvad du behøver at vide



Denne blog vil lede dig gennem python-anmodningsmodulet i detaljer. Du bliver fortrolig med GET- og POST-anmodninger, sessionsobjekter, cookies og overskrifter.

Python anmoder om taske næsten 400.000 downloads hver dag. Dette tal er tydeligt nok til at forstå om populariteten af ​​dette . I de senere år er python-programmeringssprog blevet det mest ønskede programmeringssprog for mange udviklere. Koncepterne og bibliotekerne som anmodninger er en af ​​de mange grunde til, at udviklere skifter fra andre programmeringssprog til python. I denne blog gennemgår vi følgende emner:

Hvad er Python-anmodninger?

Python-anmodninger blev skrevet af Kenneth Reitz og licenseret under apache 2.0. Det er et menneskeligt venligt HTTP-bibliotek, som det er nævnt på den officielle dokumentationsside. Det er let at bruge og dybest set brugt til at lave alle mulige HTTP-anmodninger. Følgende er et par avancerede funktioner, som anmodninger kommer med:
  1. Hold dig i live og forbindelsespooling
  2. Internationale domæner og webadresser
  3. Sessioner med cookie-persistens
  4. SSL-verifikation i browser-stil
  5. Automatisk afkodning af indhold
  6. Grundlæggende / fordøjelsesgodkendelse
  7. Elegante nøgle / værdi cookies
  8. Automatisk dekompression
  9. Unicode-responsorganer
  10. HTTP-proxy-understøttelse
  11. Multipart fil uploads
  12. Streaming downloads
  13. Forbindelsestimeouts
  14. Chunked anmodninger
Dette er alle de avancerede funktioner i python-anmodningsbiblioteket, lad os prøve at forstå, hvorfor vi i første omgang bruger python-anmodninger.

Hvorfor bruge Python-anmodninger?

Når det kommer til, hvorfor bruger vi python-anmodninger? grunden er ret enkel. Mens du bruger python-anmodninger, behøver du ikke at tilføje forespørgslerne manuelt til dine webadresser og formkode postdata. Det gør vores job lettere, når vi fremsætter http-anmodninger af enhver art.Nu hvor vi er bekendt med pythonanmodninger, og hvorfor vi bruger dem i python, kan vi prøve at forstå, hvordan vi installerer anmodninger på vores projekt eller system.

Sådan installeres Python-anmodninger?

Installationsdelen er også meget let. Hvis du har installeret pipenv-opsætningen på dit system, kan du blot køre følgende kommando i terminalen.

$ pip-installationsanmodninger

Dette installerer anmodningsbiblioteket på dit system. Der er en yderligere tilgang til installation af anmodninger. Hvis du bruger pycharm, kan du tilføje anmodninger om projekttolken i indstillingerne. Det tjener det samme formål som terminalen, hvis biblioteket installeres på vores projekt.Nu hvor vi er færdige med installationen, kan vi prøve at forstå, hvordan vi vil få og poste anmodninger i python.

Hvordan laver jeg få & post anmodninger?

Get-anmodning bruges grundlæggende til at anmode om data fra serveren. Følgende er syntaksen for at komme med en anmodning.
importanmodninger res = anmodninger.get ('url') #res er svarobjektet her.
Postanmodning bruges til at indsende de data, der skal behandles til serveren. Følgende er syntaksen for at indgive en postanmodning.
importanmodninger nyttelast = {'key1': 'værdi1'} res = anmodninger.post ('url', data = nyttelast)
Nu hvor vi ved, hvordan vi kan komme med få og sende anmodninger, kan vi se på, hvordan vi kan overføre parametre til url ved hjælp af get-anmodningen.

Videregivelse af parametre i en url

At videregive parametre i en url er så simpelt som at lave en get-anmodning. Følgende er et eksempel på at overføre parametre til url.
importanmodninger nyttelast = {'key1': 'værdi1', 'key2': 'værdi2'} res = anmodninger.get ('url', params = nyttelast) udskriv (res.url) # dette vil udskrive url med parametrene gennemgået get-anmodningen.

Status kode

Vi kan også kontrollere statuskoden, følgende er koden for at kontrollere statuskoden:





importanmodninger res = anmodninger.get ('url') udskriv (res.status_code ())
Hvis koden returnerer 200, betyder det, at der ikke er nogen fejl, og anmodningen er i orden. Hvis vi fremsætter en dårlig anmodning, returnerer koden kode som 404 eller 505, hvilket vil medføre en http-fejl.

Svarindhold

Vi kan også læse indholdet af serverens svar. Biblioteket afkoder automatisk indholdet fra serveren.
importanmodninger res = anmodninger.get ('url') udskriv (res.indhold)

Anmodninger har også en indbygget json-dekoder.

importanmodninger res = anmodninger.get ('url') print (res.json ()) # dette får svaret i json-format

Flerdelt upload af filer

Det er meget let at uploade flerdelte filer ved hjælp af anmodninger.
importer anmodningsfiler = {'fil': åben ('filnavn', 'rb')} res = anmodninger.post ('url', filer = filer) udskriv (res.tekst)
Til afsendelse af flere filer specificerer vi flere filer i filparameteren.

Cookies og overskrifter

Vi kan se serverens svaroverskrifter og cookies ved hjælp af svarobjektet. Følgende er koden for at se serverens overskrifter.
importanmodninger res = anmodninger.get ('url') print (res.headers)
Vi kan også sende brugerdefinerede overskrifter til webadressen. Lad os se på koden.
importer anmodningsoverskrifter = {'key1': 'værdi1'} res = anmodninger.get ('url', overskrifter = overskrifter) udskriv (res.overskrifter)
Anmodninger ændrer ikke dens adfærd baseret på tilpassede overskrifter. De sendes simpelthen videre til den endelige anmodning. cookies kan også ses ved hjælp af svarobjektet.
importer anmodninger # for at videregive vores egne cookies kan vi bruge cookies parameter cookies = dict (cookies = 'working') res = anmodninger.get ('url', cookies = cookies) print (res.text)

Cookies returneres i en RequestCookieJar, der fungerer som en ordbog, men også tilbyder en mere komplet grænseflade, der er egnet til brug over flere domæner eller stier.



Sessionsobjekt

Sessionsobjektet giver dig mulighed for at opretholde visse parametre på tværs af anmodningerne.
  • Vedvarer cookies på tværs af alle anmodninger fra sessionforekomsten
  • Brug urllib3-forbindelsespooling
  • Betydelig præstationsforøgelse
  • Et sessionobjekt har alle metoderne i de vigtigste anmodninger API
Følgende er koden for at opretholde nogle cookies på tværs af anmodninger.
s = anmodninger.session () s.get ('url') res = s.get ('url') print (res.text)

Fejl og undtagelser

Følgende er de fejl og undtagelser, der er rejst i en pythonanmodning.
  • I tilfælde af netværksproblemer opfordrer anmodninger en ConnectionError-undtagelse.
  • Response.raise_for_status () hæver en HTTP-fejl, når der er en mislykket statuskode.
  • Hvis der er en timeout, vil det medføre en timeout-undtagelse
  • TooManyRedirects-undtagelsen hæves, hvis anmodningen overstiger det konfigurerede antal maksimale antal omdirigeringer.
I denne blog har vi diskuteret python-anmodningsmodulet, hvor vi har forskellige avancerede funktioner. Vi diskuterede installation og fremsættelse af en get and post-anmodning med svarindholdet og andre koncepter i anmodningsbiblioteket i python. Python-anmodningsmodul er et af de mange ekstraordinære funktioner uden for boksen programmeringssprog for python . Du kan kickstarte din læring ved at tilmelde dig og opdage mulighederne for python programmeringssprog. Har du spørgsmål? nævne dem i kommentarfeltet, vi vender tilbage til dig.