La ĉefa problemo rilata al la http Python-biblioteko estas, ke ĝi ne estas tre afabla. Povas esti malfacile por komencantoj kompreni kaj uzi, ĉar ĝi postulas multan scion pri HTTP-protokolo kaj TTT-evoluo ĝenerale. Aldone, la biblioteko ne disponigas ajnajn enkonstruitajn erartraktadon aŭ sencimigan kapablojn, malfaciligante problemojn kiuj povas ekesti dum uzado de la biblioteko.
import http.client conn = http.client.HTTPSConnection("www.example.com") conn.request("GET", "/") r1 = conn.getresponse() print(r1.status, r1.reason)
1. Ĉi tiu linio importas la http.client-modulon, kiu provizas interfacon por fari HTTP-petojn.
2. Ĉi tiu linio kreas konekton al la retejo www.example.com per la HTTPS-protokolo (kiu estas pli sekura ol HTTP).
3. Ĉi tiu linio sendas GET peton al la radika dosierujo de www.example.com (te, “/”).
4. Ĉi tiu linio konservas la respondon de www.example.com en variablo nomata r1, kiu tiam povas esti uzata por aliri informojn pri la respondo (kiel ĝia stato kaj kialo).
5. Fine, ĉi tiu linio presas la staton kaj kialon de la respondo de www.example.com (ekz., “200 OK” aŭ “404 Not Found”).
Enhavo
Kio estas HTTP-lib en Python
HTTP lib en Python estas biblioteko kiu disponigas interfacon por klientflanka HTTP-komunikado. Ĝi permesas al programistoj sendi kaj ricevi datumojn per interreto per la Hiperteksta Transiga Protokolo (HTTP). La biblioteko subtenas diversajn metodojn de aŭtentigo, inkluzive de baza, digesto kaj NTLM. Ĝi ankaŭ subtenas diversajn specojn de petoj kiel GET, POST, PUT, DELETE kaj HEAD. Aldone, ĝi provizas subtenon por kuketoj kaj alidirektiloj. HTTP-lib en Python estas esenca ilo por reto-disvolviĝo ĉar ĝi simpligas la procezon fari petojn al retserviloj kaj pritrakti respondojn de ili.
Kiel konekti al HTTP en Python
Python disponigas kelkajn modulojn por aliri la interreton kaj labori kun HTTP, inkluzive de:
1. urllib: Ĉi tiu estas la kerna modulo por labori kun URL-oj en Python. Ĝi disponigas funkciojn por malfermi kaj legi datumojn de URL-oj, same kiel funkciojn por kodi kaj malkodi datumojn.
2. petoj: Ĉi tio estas populara triaparta biblioteko, kiu simpligas fari HTTP-petojn en Python. Ĝi subtenas ĉiujn komunajn HTTP-metodojn (GET, POST, PUT, DELETE ktp.), same kiel aŭtentikigon kaj kuketojn.
3. httplib: Ĉi tiu estas la malaltnivela interfaco por fari HTTP-petojn en Python. Ĝi subtenas ĉiujn komunajn HTTP-metodojn (GET, POST, PUT ktp.), sed ne subtenas aŭtentikigon aŭ kuketojn el la skatolo.
Por konektiĝi al HTTP-servilo uzante iun el ĉi tiuj moduloj, vi unue devas krei konektan objekton pasigante al ĝi la URL al kiu vi volas konektiĝi:
import urllib
conn = urllib.request.urlopen('http://www.example.com/')
# aŭ uzante petojn
importaj petoj
conn = requests.get('http://www.example/com')
Post kiam vi kreis vian konektan objekton, vi povas tiam uzi ĝin por sendi HTTP-peton nomante ĝian request()-metodon kun ĉeno enhavanta vian deziratan metodon (ekz. GET aŭ POST) kaj iujn ajn aldonajn parametrojn, kiujn vi volas enmeti en vian peton (ekz. kaplinioj). Ekzemple:
# uzante urllib
respondo = conn .request('GET', '/vojo/al/rimedo')
# aŭ uzante petojn
respondo = conn .request('POST', '/path/to/resource', data=data)
La respondobjekto resendita enhavos informojn pri la statuskodo resendita de la servilo (ekz. 200 OK), ajnaj kaplinioj resenditaj de la servilo kaj ajna enhavo kiu estis resendita responde al via peto (ekz. HTML).
plej bonaj Python HTTP-klientoj
1. Petoj: Petoj estas populara Python-biblioteko por fari HTTP-petojn. Ĝi estas simpla uzebla kaj provizas ampleksan gamon de funkcioj, inkluzive de subteno por multoblaj aŭtentikigmetodoj, konektokunigo, aŭtomata enhavmalkodado kaj pli.
2. Urllib3: Urllib3 estas alia populara Python-biblioteko por fari HTTP-petojn. Ĝi subtenas diversajn aŭtentikigmetodojn, konektokunigon, aŭtomatan enhavmalkodigon, kaj pli.
3. Aiohttp: Aiohttp estas nesinkrona Python-biblioteko por fari HTTP-petojn. Ĝi subtenas diversajn aŭtentikigmetodojn, konektokunigon, aŭtomatan enhavmalkodigon, kaj pli.
4. httplib2: httplib2 estas ampleksa Python-biblioteko por fari HTTP-petojn, kiu subtenas diversajn aŭtentikigmetodojn same kiel kaŝmemoro kaj kunpremadon funkciojn por redukti bendolarĝan uzadon kiam sendado de grandaj kvantoj da datumoj tra la reto.