data = {
'ids': [12, 3, 4, 5, 6 , ...]
}
urllib2.urlopen("http://abc.com/api/posts/create",urllib.urlencode(data))
Saya ingin mengirim permintaan POST, tetapi salah satu bidang harus berupa daftar nomor. Bagaimana saya bisa melakukan itu? (JSON?)
Jawaban:
Jika server Anda mengharapkan permintaan POST menjadi json, maka Anda perlu menambahkan header, dan juga membuat serial data untuk permintaan Anda ...
Python 2.x
Python 3.x
https://stackoverflow.com/a/26876308/496445
Jika Anda tidak menentukan header, itu akan menjadi
application/x-www-form-urlencoded
tipe default .sumber
add_header()
lagi, untuk setiap header yang ingin Anda tambahkan.req = urllib.Request('http://uat-api.synapsefi.com') req.add_header('X-SP-GATEWAY', 'client_id_asdfeavea561va9685e1gre5ara|client_secret_4651av5sa1edgvawegv1a6we1v5a6s51gv') req.add_header('X-SP-USER-IP', '127.0.0.1') req.add_header('X-SP-USER', '| ge85a41v8e16v1a618gea164g65') req.add_header('Content-Type', 'application/json') print(req)
...The view tab.views.profileSetup didn't return an HttpResponse object. It returned None instead.
@jdiimport urllib.request
danurllib.request.Request()
. Selain itu, mencetak objek req tidak menarik. Anda dapat dengan jelas melihat header telah ditambahkan dengan mencetakreq.headers
. Selain itu, saya tidak yakin mengapa ini tidak berfungsi di aplikasi Anda.Saya merekomendasikan menggunakan
requests
modul yang luar biasa .http://docs.python-requests.org/en/v0.10.7/user/quickstart/#custom-headers
sumber
TypeError: post() takes from 1 to 2 positional arguments but 3 were given
untuk python 3.4.2 Saya menemukan yang berikut ini akan berfungsi:
sumber
Ini berfungsi sempurna untuk
Python 3.5
, jika URL berisi nilai String / Parameter Kueri,URL Permintaan = https://bah2.com/ws/rest/v1/concept/
Nilai parameter = 21f6bb43-98a1-419d-8f0c-8133669e40ca
sumber
Anda harus menambahkan header, atau Anda akan mendapatkan error http 400. Kode berfungsi dengan baik di python2.6, centos5.4
kode:
sumber
Berikut adalah contoh cara menggunakan objek urllib.request dari pustaka standar Python.
sumber
Dalam paket permintaan terbaru, Anda dapat menggunakan
json
parameter inrequests.post()
method untuk mengirim json dict, danContent-Type
header in akan disetel keapplication/json
. Tidak perlu menentukan header secara eksplisit.sumber
Yang ini bekerja dengan baik untuk saya dengan api
sumber