requests¶
Below are the types of requests that could be made;
-
GET
-
POST
-
DELETE
-
PUT
-
HEAD
-
OPTIONS
Query parameters are passed using params argument in a request and is of the type dictionary.
request.get(url, params = {"limit": 10, "offset": 0})
Response Content¶
Json response can be decoded using response.json() method.
Image response can be decoded using response.content . This gives bytes as response that can be passed to PIL library to process the image. The reponse content type can be determined by requests.header(url, parmas, timeout)
raise_for_status()¶
It is a best practice to call response.raise_for_status() soon after a request gives a response.
resopnse = request.get(url, params, timeout)
response.raise_for_status()
data argument¶
POST request uses data argument to post thje payload. payload is provided in json format.
response = request.post(url, params, data=payload, timeout)
files argument¶
POST request uses files argument to post a Multipart-Encoded File.
files = {"file": open("report.xlsx", "rb")}
response = request.post(url, params, files=files, timeout)
timeouts¶
It is a best practice to use timeouts in all production codes.
response = request.get(url, params, timeout=10)
Advance Topics¶
Basic Authentication¶
from requests.auth import HTTPBasicAuth
basic = HTTPBasicAuth('user', 'pass')
requests.get('https://httpbin.org/basic-auth/user/pass', auth=basic)
-----SHORT HAND------👇
requests.get('https://httpbin.org/basic-auth/user/pass', auth=('user', 'pass'))