Python: не корректная кодировка при получении данных при помощи requests
После обновления ОС, неожиданно стал шалить модуль requests. А именно при получении данных при помощи post запроса, перестало срабатывать автоопределение кодировки возврата вывода:
Код вида:
def reqwest(command,body,local_config):
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0',
'Accept': 'application/json',
'Accept-Language': 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'Sec-Fetch-Dest': 'document',
'Sec-Fetch-Mode': 'navigate',
'Sec-Fetch-Site': 'none',
'Sec-Fetch-User': '?1',
'TE': 'trailers',
}
requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)
post_params = json.dumps({'command': command, 'body': body})
basic = HTTPBasicAuth(local_config["user_1c"].encode("utf8"), local_config["password_1c"])
try:
response = requests.post(local_config["url_1c"], headers=headers,data=post_params, verify=False,auth=basic)
res=json.loads(response.text)
if "error" not in res:
return {"error": True, "result": f"Ошибка выполнения запроса {e} {response} {response.text}"}
return res
except Exception as e:
return {"error":True,"result":f"Ошибка выполнения запроса {e} {response} {response.text}"}
Стал выдавать:

Решение: указать кодировку тела возврата принудительно:
response = requests.post(local_config["url_1c"], headers=headers,data=post_params, verify=False,auth=basic)
response.encoding = 'utf-8'
res=json.loads(response.text)
Результат:

