Making GET & POST Requests
GET requests retrieve data, POST requests send data. Learn to use query parameters, request bodies, headers, and handle responses.
15 min•By Priygop Team•Updated 2026
GET & POST
GET & POST
# GET with query parameters:
# response = requests.get(
# "https://api.example.com/users",
# params={"page": 1, "limit": 10},
# headers={"Authorization": "Bearer token123"},
# timeout=10
# )
# POST with JSON body:
# response = requests.post(
# "https://api.example.com/users",
# json={"name": "Alice", "email": "alice@test.com"},
# headers={"Content-Type": "application/json"}
# )
# Demo: simulating API client
import json
class APIClient:
def __init__(self, base_url):
self.base_url = base_url
self.data_store = []
def get(self, endpoint, params=None):
print(f" GET {self.base_url}{endpoint}")
if params:
print(f" Params: {params}")
return {"status": 200, "data": self.data_store}
def post(self, endpoint, data):
print(f" POST {self.base_url}{endpoint}")
print(f" Body: {json.dumps(data)}")
data["id"] = len(self.data_store) + 1
self.data_store.append(data)
return {"status": 201, "data": data}
# Usage
api = APIClient("https://api.example.com")
# POST — create users
print("=== Creating Users ===")
api.post("/users", {"name": "Alice", "email": "alice@test.com"})
api.post("/users", {"name": "Bob", "email": "bob@test.com"})
# GET — list users
print("\n=== Fetching Users ===")
result = api.get("/users", params={"page": 1})
print(f" Users: {json.dumps(result['data'], indent=2)}")Tip
Tip
Use response.raise_for_status() to auto-raise HTTPError for bad status codes. Use session objects for connection reuse.
Diagram
Loading diagram…
REST is the standard for modern web APIs
Common Mistake
Warning
Sending sensitive data in GET parameters. Use POST with request body for passwords, tokens, and personal data.
Quick Quiz
Practice Task
Note
(1) Simulate GET, POST, PUT, DELETE requests. (2) Add headers and auth. (3) Handle pagination in API responses.