#!/usr/bin/env python3 import json import re import requests BASE_URL = "http://geo-block.krk.itg.demo-ht.iadm" ENDPOINT = "/api/generate" payload = { "countries": [ "PL" ], "aggregate": true, "use_cache": true, "app_type": "haproxy", "app_variant": "map" } resp = requests.post(BASE_URL + ENDPOINT, json=payload, timeout=120) print("Status:", resp.status_code) print("X-From-Cache:", resp.headers.get("X-From-Cache")) print("X-Cache-Type:", resp.headers.get("X-Cache-Type")) print("X-Generated-At:", resp.headers.get("X-Generated-At")) ct = (resp.headers.get("Content-Type") or "").lower() if resp.status_code >= 400: # try show JSON error, else text try: print(json.dumps(resp.json(), indent=2)) except Exception: print(resp.text) raise SystemExit(1) if "application/json" in ct: print(json.dumps(resp.json(), indent=2)) else: filename = "output" cd = resp.headers.get("Content-Disposition") or "" m = re.search(r'filename="?([^"]+)"?', cd) if m: filename = m.group(1) else: # fallback extension if "text/csv" in ct: filename += ".csv" elif "javascript" in ct: filename += ".js" elif "text/plain" in ct: filename += ".txt" else: filename += ".bin" with open(filename, "wb") as f: f.write(resp.content) print("Saved to:", filename)