创建经过身份验证的Python API

2024-10-04 05:30:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有点,嗯,很多!,不知道如何使用Python进行API调用。我已经做了一些成功的试验,但现在我正试图建立一个应用程序,我失去了。下面的说明是我提供的全部。我不知道如何超越我的代码

MHL = urlopen('http://new.mhl.nsw.gov.au/services/mhladas/getAccessKey.json.php')

然后询问用户名等

eg {u'access_key': None, u'error': u'No username has been entered'}

如何将我的详细信息发送回他们的服务器进行身份验证?然后把我想要的数据和请求一起返回?很高兴能被指导到一个教程或任何帮助是真正的感谢。不理解如何将指令转换成相关的Python代码

4.1登录-请求访问密钥 您需要发出登录请求才能开始使用该服务。此登录提供 您可以使用限时访问密钥。你需要为任何人提供这把钥匙 您随后提出的请求。你知道吗

http://new.mhl.nsw.gov.au/services/mhladas/getAccessKey.json.php

Request {"username":"user@myserver.com","password":"abc123"} Example response {"access_key":" MjAxMy0wNS0x…”,”error":null}

4.2 Get Station List Use this function to list the stations you have available to you. http://new.mhl.nsw.gov.au/services/mhladas/getStationList.json.php Request {"username":"test@mhl.nsw.gov.au","access_key": " MjAxMy0wNS0x…"}


Tags: key代码jsonhttpnewaccessserviceusername
2条回答

要使用urllib进行POST,需要使用urlencode对数据进行编码,并将其作为param传递给urlopen

import urllib

data = urllib.urlencode({"username":"buddy","password":"inches"})
post = urllib.urlopen('http://new.mhl.nsw.gov.au/services/mhladas/getStationList.json.php', data)

print post.code
print post.read()

另一种方法是使用Sar009建议的requests

你在问题中提供的信息不清楚。我假设您必须发布带有用户名和密码参数的请求。首先使用python请求来轻松地完成这些事情。pip install requests。那就试试这个。你知道吗

payload = {'username': 'user@myserver.com', 'password': 'abc123'}
r = requests.post("http://new.mhl.nsw.gov.au/services/mhladas/getAccessKey.json.php", data = payload)
print r

相关问题 更多 >