Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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进行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 en

我是一个有点,很好的人!,不知道如何使用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
请求 {“用户名”:user@myserver.com,“密码”:“abc123”} 示例响应 {“访问密钥”:“MjAxMy0wNS0x…”,“错误”:null}

4.2获取站点列表 使用此功能列出您可以使用的电台。 要求 {“用户名”:test@mhl.nsw.gov.au,“访问密钥”:“MjAxMy0wNS0x…”


您在问题中提供的信息不清楚。我假设您必须使用用户名和密码参数发布请求。首先,使用python请求可以轻松地完成这些事情<代码>pip安装请求。那就试试这个

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

要使用
urllib
发表文章,您需要使用
urlencode
对数据进行编码,并将其作为参数传递给
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

我得到一个200返回值,使用requests代码很好,但是它说我应该得到这样的响应{“access_key”:“MjAxMy0wNS0x…”,“error”:null}其中包括一个API密钥,我需要在所有其他请求(如{“username”)中使用该密钥:test@mhl.nsw.gov.au,“访问密钥”:“MjAxMy0wNS0x…”如果我发布用户ID和密码,我不确定还需要什么。不管我做什么,我似乎都拿不到那把钥匙。