Попытка купить товар на внешнем веб-сайте с почтовым запросом

Я пытаюсь купить товар у внешний веб-сайт, используя их частный API и модуль запросов python. Проблема в том, что для данных формы запроса он хочет, чтобы элементы корзины, которые я создаю вручную, были точно такими же, как корзина, они точно такие же, насколько я могу судить. Когда я отправляю запрос, я получаю сообщение об ошибке от сервера о том, что он не получает никаких элементов корзины.

Я пытался сопоставить кодировку заголовков (исходный запрос использует application/x-www-form-urlencoded), используя запросы JSON kwarg вместо данных, а также добавляя элементы в корзину вручную, извлекая их и затем отправляя их. Я думаю, может быть, мне нужно сначала их закодировать, но я понятия не имею, что.

Вот код

login_data = {'email': 'email', 'password': 'password123'}
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                         'Chrome/74.0.3729.157 Safari/537.36',
           'Content-type': 'application/x-www-form-urlencoded'}

s = requests.Session()
login_response = s.post(url, data=login_data, headers=headers)  # login
data_charge = {'cartItems':[cartItems], # This is a list of dicts
               'key': 'licensing', 
               'nonce': credit_card_token,  # I have to get the card token which works fine
               'cardholder': 'John Smith'}
purchase_response = s.post(url_charge, data=data_charge, headers=headers)

Содержимое Purchase_response.json() возвращает "content":[{"error":"Элементы корзины не отправлены."}]. Он должен ответить с номерами заказов и всеми предметами, которые были приобретены.

Дайте мне знать, если я упущу какие-либо важные детали. Спасибо!

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
428
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте заменить:

purchase_response = s.post(url_charge, data=data_charge, headers=headers)

С участием:

purchase_response = s.post(url_charge, json=data_charge, headers=headers)

надеюсь это поможет

Другие вопросы по теме