Skip to content

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'))