因此,當我使用下面的 URL 通過 Postman 訪問 API 目標時,它可以正常作業,沒有任何問題
base_url = https://api.cats.net/orgs/CatEmpire/audit-log?phrase=action:stuck_on_tree date_of_event:2022-01-11
但是,當我將以下引數附加到我的請求中時,URL 的出現方式不同,我不再能夠獲得結果
parameters = {
'action:': 'stuck_on_tree',
'date_of_event:': '2022-01-11'
}
PAT = asdasdhdhdhhd123123
response = requests.get(base_url, headers={"Accept": "application/vnd.github.v3 json", "Authorization": f"Bearer {PAT}"}, params=parameters)
print(response.request.url)
#This returns https://api.cats.net/orgs/CatEmpire/audit-log?phrase=&action:=stuck_on_tree&date_of_event:=2022-01-11
我曾嘗試使用:
paramters_string = urllib.parse.urlencode(parameters, safe='')
然后我在下面更新了我的回應變數,但結果仍然完全相同。我試圖進行一些挖掘,但我似乎無法弄清楚這是否是一個問題,因為我正在使用字典來傳遞引數,或者是否還有其他我無法理解的東西。我對 Python 還很陌生。
`response = requests.get(base_url, headers={"Accept": "application/vnd.github.v3 json", "Authorization": f"Bearer {PAT}"}, params=parameters)`
uj5u.com熱心網友回復:
您的基本 URL 不應包含查詢字串 ( ?phrase=) 的一部分。
將此用于您的基本 URL:
https://api.cats.net/orgs/CatEmpire/audit-log
對于您的引數,請使用以下命令:
parameters = {
'phrase': 'action:stuck_on_tree date_of_event:2022-01-11'
}
更新
由于 API 限制,您無法對引數進行 URL 編碼,因此您必須將它們作為字串傳遞,如下所示:
parameters = 'phrase=action:stuck_on_tree date_of_event:2022-01-11'
uj5u.com熱心網友回復:
你有沒有嘗試過 ?
PAT = "asdasdhdhdhhd123123"
data = parameters
這只是授權請求的一個示例:
import requests
endpoint = ".../api/ip"
data = {"ip": "1.1.2.3"}
headers = {"Authorization": "Bearer MYREALLYLONGTOKENIGOT"}
response = requests.post(endpoint, data=data, headers=headers)
uj5u.com熱心網友回復:
所以我想通了。我需要為每個引數創建一個單獨的鍵,如下所示:
params = {
'phrase': 'action:stuck_on_tree',
'date_of_event:': '2022-01-11'
}
我不確定為什么我不能將所有內容都放入“短語”鍵中,但這很有效,也是我開始嘗試做的事情,因為我希望能夠將內容動態傳遞到 params 字典中,所以將我的所有引數放在一個鍵中將是一個問題。我不需要編碼或取消編碼任何東西。基本上半冒號是我的問題,哈哈。感謝您對@dimz 和@john glenn 的所有幫助!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/425911.html
