Requests, Czyli HTTP Dla Ludzi

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 28

httplib

urllib(2)

requests na ratunek

requests, czyli HTTP dla ludzi

Zbigniew Siciarz

PyWaw 11 lipca 2011

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

Plan prezentacji

1 httplib 2 urllib(2) 3 requests na ratunek

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

httplib

import httplib conn = httplib . HTTPConnection ( " httpbin . org " ) conn . request ( " GET " , " / status /418 " ) response = conn . getresponse () print response . status , response . reason print response . read ()

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

httplib

zbyszek@wicherek :~/ Dokumenty / requests$ python code / httplib1 . py 418 I M A TEAPOT -=[ teapot ]= _ .... _ . _ _ . | . " ^ " . _ , \ _ ; " ---" |// | ;/ \_ _/ " " "

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

urllib/urllib2

obie biblioteki w stdlib

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

urllib/urllib2

obie biblioteki w stdlib rna funkcjonalno

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

urllib/urllib2

obie biblioteki w stdlib rna funkcjonalno urllib: kodowanie parametrw, pobieranie wprost do pliku

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

urllib/urllib2

obie biblioteki w stdlib rna funkcjonalno urllib: kodowanie parametrw, pobieranie wprost do pliku urllib2: obsuga otwieraczy

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

urllib2 - Basic Auth

import urllib2 url = http :// httpbin . org / basic - auth / user / pass user = user password = pass req = urllib2 . Request ( url ) pwd_manager = urllib2 . HTTPPasswordMgrWithDefaultRealm () pwd_manager . add_password ( None , url , user , password ) auth_manager = urllib2 . HTTPBasicAuthHandler ( pwd_manager ) opener = urllib2 . build_opener ( auth_manager ) urllib2 . install_opener ( opener ) response = urllib2 . urlopen ( req ) print response . getcode () print response . headers . getheader ( content - type ) print response . read ()

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

urllib2 - Basic Auth

import urllib2 url = http :// httpbin . org / basic - auth / user / pass user = user password = pass req = urllib2 . Request ( url ) pwd_manager = urllib2 . HTTPPasswordMgrWithDefaultRealm () pwd_manager . add_password ( None , url , user , password ) auth_manager = urllib2 . HTTPBasicAuthHandler ( pwd_manager ) opener = urllib2 . build_opener ( auth_manager ) urllib2 . install_opener ( opener ) response = urllib2 . urlopen ( req ) print response . getcode () print response . headers . getheader ( content - type ) print response . read ()

O RLY?
@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

requests

http://python-requests.org/

Requests: Python HTTP Module (That Doesn't Suck)

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

requests

http://python-requests.org/

Requests: Python HTTP Module (That Doesn't Suck) Requests: The Simple (e.g. usable) HTTP Module

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

requests

http://python-requests.org/

Requests: Python HTTP Module (That Doesn't Suck) Requests: The Simple (e.g. usable) HTTP Module
Requests: HTTP for Humans

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

requests - API

requests.get(...)

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

requests - API

requests.get(...) requests.post

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

requests - API

requests.get(...) requests.post requests.put

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

requests - API

requests.get(...) requests.post requests.put requests.delete

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

requests - API

requests.get(...) requests.post requests.put requests.delete requests.patch

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

requests - API

requests.get(...) requests.post requests.put requests.delete requests.patch requests.options

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

requests - API

requests.get(...) requests.post requests.put requests.delete requests.patch requests.options requests.head

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

requests - proste danie GET

import requests response = requests . get ( http :// httpbin . org / status /418 ) print response . status_code print response . content

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

requests - Basic Auth

import requests url = http :// httpbin . org / basic - auth / user / pass response = requests . get ( url , auth =( user , pass ) ) print response . status_code print response . headers [ content - type ] print response . content

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

requests - Basic Auth

zbyszek@wicherek :~/ Dokumenty / requests$ python code / requests_2 . py 2 application / json { " authenticated " : true , " user " : " user " }

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

requests - POST i upload pliku

import requests data = dict ( username = ) with open ( __file__ ) as f : response = requests . post ( http :// httpbin . org / post , data = data , files ={ filename : f }) print response . status_code print response . content

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

requests - POST i upload pliku

zbyszek@wicherek :~/ Dokumenty / requests$ python code / requests_3 . py 2 { " origin " : " :: ffff :184.73.223.212 " , " files " : { " filename " : " import requests \ n \n < CIACH > " }, " form " : null , " url " : " http :// httpbin . org / post " , " args " : {} , " headers " : { " Content - Length " : " 555 " , < CIACH > " Content - Type " : " multipart / form - data ; boundary =3298 fc5c93854f96b712fa47 8e4cdef " }, " data " : " username " }
@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

Alternatywy

PyCURL wrapper na libcurl

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

Alternatywy

PyCURL wrapper na libcurl

Mechanize klient to "przegldarka"

@zsiciarz requests, czyli HTTP dla ludzi

httplib

urllib(2)

requests na ratunek

The End

Pytania?

http://siciarz.net @zsiciarz

@zsiciarz requests, czyli HTTP dla ludzi

You might also like