Увы, опять наступил момент, что ОС уже не обновляется оперативно, и того гляди, вообще её снимут с поддержки, а обновления ставить нужно. Ранее уже делал описание обновления, но с тех пор инструкция чуть изменилась.
Подготавливаю необходимый инструментарий и окружение:
С некоторых пор, если на сайте госуслуг нажимаещь F12, чтобы открыть консоль разработчика, то автоматически включается отладка, и подсмотреть что делает сайт «под капотом» становится проблематично т.к. после нажатия кнопки «продолжить», отладка снова автоматически останавливается. Вообще не понятно зачем они это сделали, т.к. отключается всё это одной кнопкой:
И для опытного программиста никакой трудности не возникает. А не опытные? А зачем они сюда полезут вообще и что увидят? Ну в общем так себе «защита» не понятно для кого рассчитанная
После обновления ОС, неожиданно стал шалить модуль 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}"}
Стал выдавать:
Решение: указать кодировку тела возврата принудительно: