Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python登录API返回;“电子邮件或密码错误”;_Python_Json - Fatal编程技术网

Python登录API返回;“电子邮件或密码错误”;

Python登录API返回;“电子邮件或密码错误”;,python,json,Python,Json,我是一名Python新手,使用Python战胜win 7 professional。 最近,我开始尝试编写一个脚本来测试我们所有的API,第一个是“登录”API。 以下是我编写的代码: def main(): init() print (colored("This script activates all Dashboard API's.\n",'yellow')) accountId = raw_input("Enter the account name:") print ("\n")

我是一名Python新手,使用Python战胜win 7 professional。 最近,我开始尝试编写一个脚本来测试我们所有的API,第一个是“登录”API。 以下是我编写的代码:

def main():

init()

print (colored("This script activates all Dashboard API's.\n",'yellow'))

accountId = raw_input("Enter the account name:")
print ("\n")
accountPass = raw_input("Enter the account password:")
print ("\n")
print accountId

get_token (accountId,accountPass)
def get_令牌(accountId、accountPass): 标头={“内容类型”:“应用程序/json”} url=''; url+=''

我得到的结果如下:

http://<Server URL>{'id': 'test', 'method': 'login', 'jsonrpc': 2.0, 'user': 'XXX', 'pass': 'XXX'}{
'Content-Type': 'application/json'}
{"error":{"code":-32000,"message":"Email or Password were wrong!","data":{}},"id":"test","jsonrpc":"2.0"}
http://{'id':'test','method':'login','jsonrpc':2.0,'user':'XXX','pass':'XXX'}{
“内容类型”:“应用程序/json”}
{“error”:{“code”:-32000,“message”:“Email或密码错误!”,“data”:{}},“id”:“test”,“jsonrpc”:“2.0”}
我正在使用正确的用户名和密码。 API代码是用PHP编写的,以防对


您能帮忙吗?

您可以尝试两件事-去掉用户名和密码,直接传递字典而不将其编码为json:

def get_token(account_id, account_pass):

    param = {"jsonrpc": 2.0, "method": "login", "id": "test"}
    param["user"] = account_id.strip()
    param["pass"] = account_pass.strip()

    result = requests.post('example.com', json=param)
    result.raise_for_status()
    print(result.text)

您使用的是什么版本的请求?您不需要使用
json.dumps
,只需直接传递参数即可。
def get_token(account_id, account_pass):

    param = {"jsonrpc": 2.0, "method": "login", "id": "test"}
    param["user"] = account_id.strip()
    param["pass"] = account_pass.strip()

    result = requests.post('example.com', json=param)
    result.raise_for_status()
    print(result.text)