GET Request

Retrieve data from server:

import requests

# Simple GET
response = requests.get('https://api.example.com/data')

# With query parameters
params = {'key': 'value', 'page': 1}
response = requests.get('https://api.example.com/search', params=params)

# URL becomes: https://api.example.com/search?key=value&page=1

POST Request

Send data to server:

# POST with form data
data = {'name': 'Alice', 'email': '[email protected]'}
response = requests.post('https://api.example.com/users', data=data)

# POST with JSON
json_data = {'name': 'Alice', 'age': 25}
response = requests.post('https://api.example.com/users', json=json_data)

Other HTTP Methods

Use other HTTP methods:

# PUT - Update resource
response = requests.put('https://api.example.com/users/1', json=data)

# DELETE - Delete resource
response = requests.delete('https://api.example.com/users/1')

# PATCH - Partial update
response = requests.patch('https://api.example.com/users/1', json=data)

Response Handling

Handle different response types:

response = requests.get('https://api.example.com/data')

# Check status
if response.status_code == 200:
    data = response.json()
elif response.status_code == 404:
    print("Not found")
else:
    response.raise_for_status()

# Access response
print(response.text)        # Text content
print(response.json())     # Parsed JSON
print(response.content)    # Binary content

Error Handling

Handle errors gracefully:

try:
    response = requests.get('https://api.example.com/data', timeout=5)
    response.raise_for_status()
    data = response.json()
except requests.exceptions.Timeout:
    print("Request timed out")
except requests.exceptions.HTTPError as e:
    print(f"HTTP error: {e}")
except requests.exceptions.RequestException as e:
    print(f"Request error: {e}")

Best Practices

  • Always use timeouts: Prevent hanging requests
  • Check status codes: Handle different responses
  • Use sessions: For multiple requests
  • Handle exceptions: Network requests can fail

Next Steps

Learn about headers and authentication for secure requests.