Request library

chevron-rightmethodshashtag

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

chevron-rightStatus codeshashtag

1xx – Informational (Request received, continuing process)

Code
Meaning
Description

100

Continue

Server got the request headers; client should send body now.

101

Switching Protocols

Server is switching to a different protocol (like HTTP to WebSocket).

chevron-rightReal-time examplehashtag

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

import 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

import 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

import 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

import 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

import 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

import 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

import 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

import 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_codeCI/CD Job Result Validation

import 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.headersLog CDN Cache Headers

import requests

resp = requests.get("https://cdn.example.com/app.js")
print("Cache Info:", resp.headers.get("X-Cache"))

🔹 11. response.textParse Raw HTML for Debugging

import requests

resp = requests.get("https://nginx-status-page")
print("HTML content:\n", resp.text[:200])

🔹 12. response.json()Parse JSON from Monitoring API

import 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.contentDownload Backup File

import 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