Простой Python POST urlencode()

Я пытаюсь отправить сообщение POST в свое приложение Node.js, используя Python. Вот мой код

import urllib
import urllib2

url = my_url
values = {'email' : my_email,
      'password' : my_password }
data = urllib.urlencode(values)

req = urllib2.Request(url,data)
response = urllib2.urlopen(req)
the_page = response.read()

print(the_page)

Запрос отправлен, но каким-то образом параметры запутались, потому что полученный ответ соответствует неверным учетным данным.

Я могу сделать тот же запрос, используя Postman для Chrome, и он работает просто отлично. Так что я знаю, что это не что-то с моим API.

По сути, я могу выполнять запросы GET с помощью Python, но по какой-то причине, когда я пытаюсь включить параметры в POST, они не транслируются правильно.

Я уже просмотрел документы для urllib, urllib2 и urlencode(). Я не мог найти ничего полезного

1 ответ

Я больше не отлаживаю проблемы urllib2, так как я перешел на запросы, у меня их больше нет, вы можете сделать это:

import requests

print requests.post(my_url, data={'email': my_email, 'password': my_password}).text

Такой читабельный, такой элегантный... Если ваше приложение jquery возвращает json, вы можете использовать ".json()" вместо ".text"

Похоже, ваша проблема заключается в сохранении файлов cookie, для этого вы можете просто использовать сеанс запросов

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