проблемы с передачей post запроса в python
Есть фетч на node.js
fetch("https://cs.deals/ajax/cart/add-items", {
"headers": {
"accept": "application/json, text/javascript, */*; q=0.01",
"accept-language": "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7",
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"sec-ch-ua": "\"Google Chrome\";v=\"105\", \"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"105\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"Windows\"",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"x-requested-with": "XMLHttpRequest",
"cookie": "куки",
"Referer": "https://cs.deals/ru/market/rust/Pants/?sort=price",
"Referrer-Policy": "strict-origin-when-cross-origin"
},
"body": "items=22932914-1-0.09",
"method": "POST"
});
он работает и прекрасно возвращает все как мне нужно,но проект на питоне и такой же пост запрос
header={
"accept": "application/json, text/javascript, */*; q=0.01",
"accept-language": "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7",
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"sec-ch-ua": "\"Google Chrome\";v=\"105\", \"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"105\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"Windows\"",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"x-requested-with": "XMLHttpRequest",
"cookie": "куки",
"Referer": "https://cs.deals/ru/market/rust/Pants/?min_price=0.3&sort=discount&sort_desc=1",
"Referrer-Policy": "strict-origin-when-cross-origin",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"
}
data={
"body": "items=22932914-1-0.09"
}
try:
resp=session.post("https://cs.deals/ajax/cart/add-items",json=data,headers=header)
except Exception:
print("не удалось добавить в корзину")
Сервер уже возвращает проблему с body.
С этим сайтом уже такое было, тогда у меня обрезался последний аргумент, но передвинув в начало все исправилось.
А сейчас я уже не смог так понять, пытался как-то отследить в каком виде мой запрос отправляется на сервер, но сделать этого я тоже не смог
Ответы (1 шт):
В js коде "body": "items=22932914-1-0.09", означает, что содержимое тела запроса - строка "items=22932914-1-0.09", добавлять туда "body" не нужно (условно, "body" - это название параметра).
Причем это не json, а просто строка, просто текст items=22932914-1-0.09.
Должно быть так:
data="items=22932914-1-0.09"
resp=session.post("https://cs.deals/ajax/cart/add-items", data=data, headers=header)