Requests Reference
Making HTTP requests — GET, POST, headers, timeouts, and error handling.
Send an HTTP GET request and return the response.
Used In: Fetching REST API data, downloading JSON payloads.
requests.get(url, params=None, headers=None, timeout=None)import requests
r = requests.get(
'https://api.github.com/repos/python/cpython',
timeout=10
)
print(r.status_code)200Time Complexity: Depends on network
Common Mistakes: Not setting timeout — can block a production process indefinitely.
Related Methods: r.json(), r.raise_for_status()
Send an HTTP POST request with JSON or form data.
Used In: Sending events to webhooks, submitting API payloads.
requests.post(url, json=None, data=None, headers=None, timeout=None)import requests
payload = {'user': 'Alice', 'action': 'login'}
r = requests.post(
'https://httpbin.org/post',
json=payload,
timeout=10
)
print(r.status_code)200Time Complexity: Depends on network
Related Methods: r.json()
Pass query string parameters as a dict — requests encodes them automatically.
Used In: Paginated API calls, filtered data fetching.
requests.get(url, params={'key': 'value'})import requests
r = requests.get(
'https://httpbin.org/get',
params={'page': 1, 'limit': 20},
timeout=5
)
print(r.url)https://httpbin.org/get?page=1&limit=20Time Complexity: O(N) encoding
Add custom HTTP headers — authentication, content type, API tokens.
Used In: Authenticated API calls, custom content negotiation.
requests.get(url, headers={'Authorization': 'Bearer TOKEN'})import requests
headers = {
'Authorization': 'Bearer my-api-token',
'Accept': 'application/json'
}
r = requests.get('https://api.example.com/data', headers=headers, timeout=10)
print(r.status_code)200Time Complexity: O(1)
Parse the JSON response body into a Python dict or list.
Used In: Extracting API response payloads.
response.json()import requests
r = requests.get('https://httpbin.org/json', timeout=5)
data = r.json()
print(type(data))<class 'dict'>Time Complexity: O(N)
Related Methods: r.text, r.content
Raise an HTTPError exception for 4xx and 5xx response status codes.
Used In: API error handling in ETL pipelines.
response.raise_for_status()import requests
try:
r = requests.get('https://httpbin.org/status/404', timeout=5)
r.raise_for_status()
except requests.HTTPError as e:
print(f'HTTP Error: {e.response.status_code}')HTTP Error: 404Time Complexity: O(1)
Common Mistakes: Checking r.status_code == 200 manually instead of using raise_for_status().
Related Methods: r.ok, r.status_code
Reuse a persistent HTTP connection with shared headers and cookies across requests.
Used In: Multi-page API scraping, authenticated crawling.
requests.Session()import requests
with requests.Session() as s:
s.headers.update({'Authorization': 'Bearer TOKEN'})
r1 = s.get('https://api.example.com/users', timeout=5)
r2 = s.get('https://api.example.com/orders', timeout=5)
print(r1.status_code, r2.status_code)200 200Time Complexity: O(1) per request (connection reuse)
Related Methods: requests.get()