Index: ahttp.py ================================================================== --- ahttp.py +++ ahttp.py @@ -50,11 +50,11 @@ # prepare default query object session = requests.Session() # default HTTP headers for requests session.headers.update({ - "User-Agent": "streamtuner2/2.1 (X11; Linux amd64; rv:33.0) like WinAmp/2.1", + "User-Agent": "streamtuner2/2.2 (X11; Linux amd64; rv:52.0) like WinAmp/2.1", "Accept": "*/*", "Accept-Language": "en-US,en,de,es,fr,it,*;q=0.1", "Accept-Encoding": "gzip, deflate", "Accept-Charset": "UTF-8, ISO-8859-1;q=0.5, *;q=0.1", }) @@ -63,21 +63,21 @@ #-- Retrieve data via HTTP # # Well, it says "get", but it actually does POST and AJAXish GET requests too. # def get( - url, params={}, referer=None, post=0, ajax=0, + url, params={}, referer=None, post=0, ajax=0, json=0, binary=0, content=True, encoding=None, verify=False, - statusmsg=None, timeout=9.25, quieter=0 + statusmsg=None, timeout=9.25, quieter=0, add_headers={} ): # statusbar info if not quieter: progress_feedback(url, timeout=timeout/1.5) # combine headers - headers = {} + headers = {}.update(add_headers) if ajax: headers["X-Requested-With"] = "XMLHttpRequest" if referer: headers["Referer"] = (referer if referer not in [True, 1] else url) @@ -86,11 +86,14 @@ #endif # read if post: log.HTTP("POST", url, params) - r = session.post(url, data=params, headers=headers, timeout=timeout) + if json: + r = session.post(url, json=params, headers=headers, timeout=timeout) + else: + r = session.post(url, data=params, headers=headers, timeout=timeout) else: log.HTTP("GET"+(" AJAX" if ajax else ""), url, params ) r = session.get(url, params=params, headers=headers, verify=verify, timeout=timeout) if not quieter: