How to fix <Response [400]> while make a POST in Python?

17,745

Change

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

to

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

because data is not a dict that must be transformed to json but is already json.

Share:
17,745
code-8
Author by

code-8

I'm B, I'm a cyb3r-full-stack-web-developer. I love anything that is related to web design/development/security, and I've been in the field for about ~9+ years. I do freelance on the side, if you need a web project done, message me. ;)

Updated on June 04, 2022

Comments

  • code-8
    code-8 almost 2 years

    I kept getting <Response [400]> in my terminal while running the script.

    I have tried

    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
    

    What did I do wrong ?