From 74437d229a8876bbc98c68afda3c42fd44a7ba44 Mon Sep 17 00:00:00 2001 From: Brett Buford Date: Fri, 28 Mar 2025 10:01:55 -0700 Subject: [PATCH] gzip http body to aoa. Also allow setting the requests pool size --- src/pingintel_api/api_client_base.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/pingintel_api/api_client_base.py b/src/pingintel_api/api_client_base.py index 0bebcaa..4dc8d1b 100644 --- a/src/pingintel_api/api_client_base.py +++ b/src/pingintel_api/api_client_base.py @@ -3,7 +3,8 @@ import os import pathlib from typing import IO, Collection, overload - +import gzip +import json import click import requests import requests @@ -110,7 +111,17 @@ def post(self, url, **kwargs): self.logger.debug(f"POST {url}") if "data" in kwargs: self.logger.debug(f"POST data: {kwargs['data']}") - # breakpoint() + + if ( + "headers" in kwargs + and "content-encoding" in kwargs["headers"] + and kwargs["headers"]["content-encoding"] == "gzip" + ): + self.logger.debug(f"Converting raw POST json to gzip data") + request_body = gzip.compress(json.dumps(kwargs["json"]).encode("utf-8")) + kwargs["data"] = request_body + del kwargs["json"] + return self.session.post(url, **kwargs) def _create_session(self):