Одно мобильное приложение, которое я пытаюсь очистить, принимает запросы в кодировке b64. Я пробовал следующее:
post_data = {
"id": iv,
"command": "queryDoc",
"params": {
"pageNum": "1",
"sortFields": "s50:desc",
"ciphertext": make_ciphertext(),
"devid": "d607f6d3de0f4f68b44aae416592f559",
"devtype": "1",
"pageSize": "20",
"queryCondition": [{"key":"s21","value":"2020"}]
}
}
post_data_encoded = base64.b64encode(json.dumps(post_data).encode())
print (post_data_encoded)
with requests.post(url, headers=headers, data=post_data_encoded) as req:
print (req.json())
Однако ответ гласит:
{
"data": {},
"ret": {
"code": 9,
"msg": "Input byte array has incorrect ending byte at 900"
}
}
Я попытался декодировать реальные запросы из своего браузера телефона, и он дал словарь со всем тем же параметры. Что здесь может быть не так?
Я рассматривал аналогичную проблему здесь: Входной байтовый массив имеет неправильный конечный байт в 40
Может быть, это b64encode в Python выводит иначе, чем java.util.Base64
? Я ценю любое предложение.