Я изо всех сил пытаюсь сделать правильный POST
, используя python requests
. Я анализирую сайт, используя mitmproxy
, а отправляемые параметры перечислены как
_cmc.workload: {
"Requests": [
{
"Service": "CourseOfSalesGet1",
"TId": 11,
"Request": {
"Page": 1,
"Stock": "BHP"
},
"DeferExecution": false,
"SkipCache": false
},
{
"Service": "QuoteGet1",
"TId": 12,
"Request": {
"Stock": "BHP"
},
"DeferExecution": false,
"SkipCache": false
}
]
}
Я преобразовал это в:
params={
'_cmc.workload': {"Requests":[{"Service":"CourseOfSalesGet1","TId":"11","Request":{"Page":"1","Stock":"BHP"},"DeferExecution":"false","SkipCache":"false"},{"Service":"QuoteGet1","TId":"12","Request":{"Stock":"BHP"},"DeferExecution":"false","SkipCache":"false"}]}
}
Заголовки из mitmproxy:
content-type: application/x-www-form-urlencoded; charset=UTF-8
accept: application/json, text/javascript, */*; q=0.01
x-requested-with: XMLHttpRequest
accept-language: en-au
accept-encoding: br, gzip, deflate
Я конвертировал заголовки в это:
headers={
'content-type':'application/x-www-form-urlencoded',
'accept':'application/json, text/javascript, */*',
'x-requested-with':'XMLHttpRequest',
'accept-language':'en-au',
'accept-encoding':'br, gzip, deflate'
}
и мой POST
был в форме
requests.session.post('https://www.example.com', headers=headers,data=params)
Я использую сеанс, поскольку для сайта требуется вход в систему, и я справился с этим нормально. Просто не могу понять, как правильно отправить данные поста, так как в ответе с сайта говорится, что я отправил пустой запрос.
Пост работает нормально, хотя при воспроизведении на mitmproxy
. Как я могу получить, чтобы это было отправлено правильно?