Я работаю над оболочкой API. Спецификации Я пытаюсь построить для имеют следующий запрос в нем:Модуль запросов python: urlencoding json data
curl -H "Content-type:application/json" -X POST -d data='{"name":"Partner13", "email":"[email protected]"}' http://localhost:5000/
Этот запрос производит следующий ответ от небольшого теста сервер установки I, чтобы увидеть exatly каких заголовки/Титулы и т.д. посылается как. Этот небольшой скрипт производит:
uri: http://localhost:5000/,
method: POST,
api_key: None,
content_type: application/json,
params: None,
data: data={"name":"Partner13", "email":"[email protected]"}
Так что выше результат я хочу, чтобы мой питон скрипт для создания, когда он попадает в небольшой тестовый скрипт.
Я использую модуль запросов python, который является самым красивым HTTP-lib, который я когда-либо использовал. Итак, вот мой код-питон:
uri = "http://localhost:5000/"
headers = {'content-type': 'application/json' }
params = {}
data = {"name":"Partner13", "email":"[email protected]"}
params["data"] = json.dumps(data)
r = requests.post(uri, data=params, headers=headers)
Такой простой материал. Установите заголовки и создайте словарь для параметров POST. В этом словаре есть одна запись с именем «data», которая является строкой JSON для данных, которые я хочу отправить на сервер. Затем я называю этот пост. Тем не менее, результат мой маленький тестовый скрипт дает обратно:
uri: http://localhost:5000/,
method: POST,
api_key: None,
content_type: application/json,
params: None,
data: data=%7B%22name%22%3A+%22Partner13%22%2C+%22email%22%3A+%22example%40example.com%22%7D
Так по существу данные JSON я хотел отправить в параметре данных было urlendcoded.
Кто-нибудь знает, как это исправить? Я просмотрел документацию по запросам и не могу найти способ не автоматически перенаправлять данные отправки.
Большое спасибо, Кевин
Данные из вашего примера скручивания недействительны json. Это сочетание между кодировкой формы и json. –