簡體   English   中英

創建經過身份驗證的Python API調用

[英]Creating authenticated Python API call

我有點不知所措!迷失了如何使用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

請求{“ username”:“ user@myserver.com”,“ password”:“ abc123”}示例響應{“ access_key”:“ MjAxMy0wNS0x…”,“ error”:null}

4.2獲取電台列表使用此功能可以列出可用的電台。 http://new.mhl.nsw.gov.au/services/mhladas/getStationList.json.php請求{“用戶名”:“ test@mhl.nsw.gov.au”,“ access_key”:“ MjAxMy0wNS0x…”}

您在問題中提供的信息不清楚。 我假設您必須使用用戶名和密碼參數發布請求。 首先,使用python request輕松地執行此類操作。 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

要使用urllib進行POST,您需要使用urlencode對數據進行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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM