From 3d303e619275486dbdea7d6fafae83d29ba64a3e Mon Sep 17 00:00:00 2001 From: brentru Date: Mon, 11 Mar 2019 12:22:11 -0400 Subject: [PATCH] add user-agent to http header string, remove byte encoding --- adafruit_io/adafruit_io.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/adafruit_io/adafruit_io.py b/adafruit_io/adafruit_io.py index 4be2bed..1fd3db4 100755 --- a/adafruit_io/adafruit_io.py +++ b/adafruit_io/adafruit_io.py @@ -44,6 +44,10 @@ __version__ = "0.0.0-auto.0" __repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_Adafruit_IO.git" +CLIENT_HEADERS = { + 'User-Agent': 'AIO-CircuitPython/{0}'.format(__version__) +} + class RESTClient(): """ REST Client for interacting with the Adafruit IO API. @@ -62,9 +66,17 @@ def __init__(self, adafruit_io_username, adafruit_io_key, wifi_manager): self.wifi = wifi_manager else: raise TypeError("This library requires a WiFiManager object.") - self.http_headers = [{bytes("X-AIO-KEY", "utf-8"):bytes(self.key, "utf-8"), - bytes("Content-Type", "utf-8"):bytes('application/json', "utf-8")}, - {bytes("X-AIO-KEY", "utf-8"):bytes(self.key, "utf-8")}] + self._aio_headers = [{"X-AIO-KEY":self.key, + "Content-Type":'application/json'}, + {"X-AIO-KEY":self.key,}] + + @staticmethod + def _create_headers(io_headers): + """Creates http request headers. + """ + headers = CLIENT_HEADERS.copy() + headers.update(io_headers) + return headers @staticmethod def _create_data(data, metadata): @@ -103,7 +115,7 @@ def _post(self, path, payload): response = self.wifi.post( path, json=payload, - headers=self.http_headers[0]) + headers=self._create_headers(self._aio_headers[0])) self._handle_error(response) return response.json() @@ -115,7 +127,7 @@ def _get(self, path, return_text=False): """ response = self.wifi.get( path, - headers=self.http_headers[1]) + headers=self._create_headers(self._aio_headers[1])) self._handle_error(response) if return_text: return response.text @@ -128,7 +140,7 @@ def _delete(self, path): """ response = self.wifi.delete( path, - headers=self.http_headers[0]) + headers=self._create_headers(self._aio_headers[0])) self._handle_error(response) return response.json()