我使用下面的代碼,以便在API端點註冊用戶:Python的請求400錯誤使用JSON
import argparse
import requests
import ConfigParser
import json
import sys
import logging
#from collections import OrderedDict
#from cs-check-user.py import get
# Configuration Parameters
env = 'Pre_internal'
Config = ConfigParser.ConfigParser()
Config.read("../etc/config.ini")
endpoint = Config.get(env, 'endpoint')
admin_user = Config.get(env, 'admin_user')
admin_password = Config.get(env, 'admin_password')
# Logging Config
logging.basicConfig(level=logging.INFO,
format='%(asctime)s %(levelname)s %(name)s %(message)s',
filename='../logs/create_user.log')
# Functions
def post(login, email, password):
login_ok = login.lower()
#data = OrderedDict([('login',login_ok),
# ('email', email),
# ('password', password)])
#data_ok = json.dumps(data, sort_keys=False)
#data = '{"login": login, "email": email, "password": password}'
#create_user = requests.post(endpoint, data, auth=(admin_user, admin_password))
data = {"login": login_ok, "email": email, "password": password}
headers = {'Content-Type': 'application/json'}
create_user = requests.post(endpoint, data=json.dumps(data), headers=headers, auth=(admin_user, admin_password))
if create_user.status_code == 202:
print 'User has been created successfully'
logging.info('User has been created successfully %s', login_ok)
sys.exit(0)
else:
print 'Error Received: ', create_user
logging.error('Received error when creating the user %s %s', login_ok, create_user)
sys.exit(1)
# Main
parser = argparse.ArgumentParser(description='''Script to create users in Cloud Storage''', epilog='''Example: ./cs-create-user.py -l dsmc -e [email protected] -p changeme''')
parser.add_argument('-l', '--login', help='Login account')
parser.add_argument('-e', '--email', help='Email account')
parser.add_argument('-p', '--password', help='Password account')
args = parser.parse_args()
if not args.login:
print 'Login incomplete'
if not args.password:
print 'Password incomplete'
if not args.email:
print 'Email incomplete'
else:
# Check user
#try:
# get(args.login)
#except SystemExit as exc:
# if exc.code == 0:
# print 'The user already exists, please select another login.'
# sys.exit(1)
# else:
post(args.login, args.password, args.email)
#
# post(args.login, args.password, args.email)
sys.exit(0)
後三小時,我不知道爲什麼我收到400所有的時間!我認爲這個問題與json格式有關,但是爲什麼?
請幫幫我。
非常感謝您提前。
什麼是端點?它是否有我們可以查看的API文檔? –
對不起,但是我沒有文檔的私人終端。我使用以下curl來創建用戶以避免python: --- curl -v -u aa:bb -X POST http:// ip:port/api/customer/-H「Accept:application/json; version = 0「-H」Content-Type:application/json「-d」{「login」:「login」,「password」:「ejemplo」,「email」:「[email protected]」}' –