2016-08-31 2 views
0

私はスクリプトを実行している間、私の端末に<Response [400]>を続けていました。PythonでPOSTを実行中に<Response [400]>を修正する方法はありますか?

私は私が間違って何をしました

import requests 
import json 

url = 'http://172.19.242.32:1234/vse/account' 

data = '{ 
    "account_id": 1008, 
    "email_address": "[email protected]", 
    "password": "qqq", 
    "account_type": "customer", 
    "name_prefix": "", 
    "first_name": "Beverly", 
    "middle_names": "", 
    "last_name": "Hills", 
    "name_suffix": "", 
    "non_person_name": false, 
    "DBA": "", 
    "display_name": "BeverlyHills", 
    "address1": "4984 Beverly Dr", 
    "address2": "4984 Beverly Dr", 
    "address3": "", 
    "city": "Beverly Hills", 
    "state": "CA", 
    "postal_code": "90210", 
    "nation_code": "90210", 
    "phone1": "3105554984", 
    "phone2": "", 
    "phone3": "", 
    "time_zone_offset_from_utc": -5, 
    "customer_type": "2", 
    "longitude": -118.4104684, 
    "latitude": 34.1030032, 
    "altitude": 0 
}' 

headers = {'content-type': 'application/json'} 

r = requests.post(url, data=json.dumps(data), headers=headers) 

print r 

を試してみましたか?

r = requests.post(url, data=data, headers=headers) 

+0

レスポンスボディとは何ですか? – Kos

+0

どうすればわかりますか? – ihue

+0

['.text'、.content'、' .json() ']のようなプロパティとメソッドがいくつかあります(http://docs.python-requests.org/ja/master/user/quickstart/#response-内容) – Kos

答えて

4

変更

r = requests.post(url, data=json.dumps(data), headers=headers) 

データをJSONに変換しなければならないdictのではなく、すでにJSONですので。

+0

それは 'json = data'ではありませんでしたか? 'data = data'を渡すと' application/json'ではなく 'x-www-form-urlencoded'としてエンコードされます。 – Kos

+0

それを変更して、私のためにうまくいくようです。 – ihue

+0

@Kos理想的には、データは辞書であり、データの代わりにjsonパラメータを使用して渡すのが理想的です。 'requests.post(url、json = data)' –

関連する問題