Пытается использовать urllib3 для отправки JSON-кодированных данных. Просто хочу, чтобы моя полезная нагрузка POST была необработанной строкой JSON с приложением типа контента/json. Я просто не вижу, как это сделать.Как передать необработанные данные POST в urllib3?
Документация по urllib3 описывает размещение данных в «полях», то есть определяет пары (ключ, значение), например, как HTML-формы кодируются URL-адресом с URL-адресом. Но я не хочу этого делать.
Ближайший я был в состоянии получить это (я только догадывался, куда поместить данные, как это нигде не документировано, что я могу найти):
http = urllib3.PoolManager()
headers = urllib3.util.make_headers(basic_auth=key+":")
r = http.request_encode_body('POST', path, json.dumps(payload), headers=headers)
, который вызывает эту ошибку urllib3:
File "C:\Python27\lib\site-packages\urllib3-1.7.1-py2.7.egg\urllib3\filepost.py", line 44, in iter_field_objects
yield RequestField.from_tuples(*field)
TypeError: from_tuples() takes exactly 3 arguments (2 given)
Спасибо за любые указатели!
Используйте модуль запросов для Python .. –
@ user2799617: модуль запросов обеспечивает удобный, но очень узкий интерфейс * поверх * 'urllib3', для некоторых задач, таких как асинхронное программирование, использование запросов нецелесообразно, но использование более явного интерфейса, открытого urllib3, вполне выполнимо. в любом случае 'urllib3' гораздо удобнее любой из встроенных библиотек python (httplib или urllib/urllib2). – SingleNegationElimination