[英]How to download JSON dataset from REST API
我需要訪問 REST API 並下載 JSON 數據集。 文檔說明了如何在 Python 中執行此操作:
import requests
data={
'sso_operation': 'authenticate_user',
'user': 'joe.blogs@gmial.com',
'password': 'this_1s_Private'
}
r1 = requests.post('WEBSSO_URL', data=data, verify=False, allow_redirects=True)
r2 = requests.get('TARGET URL', cookies=r1.cookies, verify=False, allow_redirects=True)
print (r2.status_code)
print(r2.text)
它看起來像兩步發布和獲取。 我唯一能弄清楚的是:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$user = "xxxx.com"
$password = "xxxx"
$restURL = "xxx"
$headers = @{Authorization = 'Basic ' +
[Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("${user}@${account}:${password}"))}
$response = Invoke-WebRequest -Uri $restURL -Headers $headers
$response.content
任何人都可以幫助完成這 2 步 post\\get 嗎?
由於我們不知道您所指的文檔,我將以這種方式從 Post 方法開始。 我將您的data
變量放在標題中,因為我通常會通過標題進行身份驗證並單獨發送一個 JSON 正文。 如果我弄錯了,請刪除標題並將所有內容放入$body
。 如果結果是身份驗證密鑰,它將存儲在您可以重用的$postResult
中。
$header = @{
'sso_operation' = 'authenticate_user'
'user' = 'your.user'
'password' = 'your.password'
}
$body = @{
'JSON' = 'body'
} | ConvertTo-Json
$postResult = Invoke-RestMethod -Uri $url -Headers $header -Body $body -ContentType 'application/json'
如果您與 JSON 格式交互,我建議使用Invoke-RestMethod
。 我現在假設來自“Post”調用的響應返回我放在標題中的密鑰。
$header = @{
'Authentication' = $postResult
}
$getResult = Invoke-RestMethod -Uri $url -Headers $header
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.