Crowd APIを使用してユーザーを作成するために、json形式のデータを含むPOSTリクエストを送信しようとしています。python 2.4でurllib2経由で投稿データを送信するには?
payload = json.dumps({"name": "sampleuser", "password": {"value": "secret"}, "active": true, "first-name": "Sample", "last-name": "User","display-name": "Sample User", "email": "[email protected]"})
:私はこれは多分にそう置き換えペイロードエンコーディングの問題かもしれないと思った
Bad Request
Error code returned is 400
:私は次の出力を得る
url = 'http://crowdserver/crowd/rest/usermanagement/1/user'
payload = '{"name": "sampleuser", "password": {"value": "secret"}, "active": true, "first-name": "Sample", "last-name": "User","display-name": "Sample User", "email": "[email protected]"}'
req = urllib2.Request(url, payload)
req.add_header('Content-type','application/json')
req.add_header("Accept", "application/json")
res = urllib2.urlopen(req)
output = resp.read()
print output
print resp.code
:ここ
は、コードスニペットです返品:
NameError: name 'true' is not defined
したがって、"active": true
は受け入れ可能な形式ではありません。
"active":"true"
のような二重引用符を追加すると、が得られます。タイプエラー; TypeError: not a valid non-string sequence or mapping object
更新
だから、型エラーが実際にTrue
にactive
属性値を設定することで解決したが、それは400
エラーが原因the user already exists
として読み込まinvalid user data, for example missing password or the user already exists
に戻したが判明 - 私はそれは奇妙なことを見つけるのエラー無効な入力と既存のユーザーが同じエラーコードを共有するためです。
「True」に変更するとどうなりますか? –
本当に好奇心が強い - 古いPythonバージョンのユースケースは何ですか? – JoshuaRLi
あなたのサンプルコードは、http:// –