Request library
methods
Method
Description
requests.get()
Sends a GET request
requests.post()
Sends a POST request
requests.put()
Sends a PUT request
requests.delete()
Sends a DELETE request
requests.head()
Sends a HEAD request
requests.patch()
Sends a PATCH request
requests.request()
Low-level general-purpose request
requests.Session()
Persistent session (cookies, headers)
response.status_code
Status code of the response
response.headers
Response headers
response.text
Response as string
response.json()
JSON-decoded response
response.content
Raw bytes of response
Real-time example
Here are real-world DevOps/SRE examples for each commonly used method and attribute from the requests library in Python:
🔹 1. requests.get() — Health Check of a Service
requests.get() — Health Check of a Serviceimport requests
response = requests.get("https://api.my-service.com/health")
if response.status_code == 200:
print("Service is healthy!")
else:
print("Service is down!")🔹 2. requests.post() — Triggering a Deployment via Webhook
requests.post() — Triggering a Deployment via Webhookimport requests
payload = {"branch": "main", "service": "backend"}
response = requests.post("https://ci-cd-server.com/deploy", json=payload)
print("Deployment triggered:", response.status_code)🔹 3. requests.put() — Updating Configuration in Consul
requests.put() — Updating Configuration in Consulimport requests
config_data = {"value": "true"}
response = requests.put("http://consul-server:8500/v1/kv/feature_flag", data="true")
print("Updated feature flag:", response.status_code)🔹 4. requests.delete() — Remove Old Docker Image Tag from Registry
requests.delete() — Remove Old Docker Image Tag from Registryimport requests
response = requests.delete("https://registry.example.com/v2/myimage/tags/oldtag")
print("Deleted image tag:", response.status_code)🔹 5. requests.head() — Check File Existence Without Downloading
requests.head() — Check File Existence Without Downloadingimport requests
response = requests.head("https://backup-bucket.s3.amazonaws.com/daily-backup.tar.gz")
if response.status_code == 200:
print("Backup file exists.")
else:
print("No backup found.")🔹 6. requests.patch() — Update Alertmanager Receiver in Prometheus
requests.patch() — Update Alertmanager Receiver in Prometheusimport requests
patch_payload = {"receivers": [{"name": "slack-alerts"}]}
response = requests.patch("http://alertmanager/api/v1/alerts", json=patch_payload)
print("Patched alert config:", response.status_code)🔹 7. requests.request() — Custom HTTP Method or Templated Call
requests.request() — Custom HTTP Method or Templated Callimport requests
method = "POST"
url = "https://api.internal.devops/start-job"
payload = {"job": "cleanup", "env": "prod"}
response = requests.request(method, url, json=payload)
print("Generic request sent:", response.status_code)🔹 8. requests.Session() — Persistent Session for Authenticated API Calls
requests.Session() — Persistent Session for Authenticated API Callsimport requests
session = requests.Session()
session.headers.update({"Authorization": "Bearer <token>"})
# Multiple authenticated calls
resp1 = session.get("https://monitoring.internal/api/metrics")
resp2 = session.get("https://monitoring.internal/api/alerts")
print("Metrics status:", resp1.status_code)
print("Alerts status:", resp2.status_code)🔹 9. response.status_code — CI/CD Job Result Validation
response.status_code — CI/CD Job Result Validationimport requests
resp = requests.get("https://ci-server/job/result/123")
if resp.status_code == 200:
print("Job completed successfully.")
elif resp.status_code == 404:
print("Job not found.")🔹 10. response.headers — Log CDN Cache Headers
response.headers — Log CDN Cache Headersimport requests
resp = requests.get("https://cdn.example.com/app.js")
print("Cache Info:", resp.headers.get("X-Cache"))🔹 11. response.text — Parse Raw HTML for Debugging
response.text — Parse Raw HTML for Debuggingimport requests
resp = requests.get("https://nginx-status-page")
print("HTML content:\n", resp.text[:200])🔹 12. response.json() — Parse JSON from Monitoring API
response.json() — Parse JSON from Monitoring APIimport requests
resp = requests.get("https://prometheus/api/v1/alerts")
alerts = resp.json()
for alert in alerts.get("data", {}).get("alerts", []):
print(f"{alert['labels']['alertname']} is {alert['state']}")🔹 13. response.content — Download Backup File
response.content — Download Backup Fileimport requests
resp = requests.get("https://backup.example.com/db_backup.tar.gz")
with open("db_backup.tar.gz", "wb") as f:
f.write(resp.content)
print("Backup downloaded.")Would you like these all combined into a Jupyter notebook or visual cheat sheet image for quick reference?
Last updated