簡體   English   中英

如何從 REST API 下載 JSON 數據集

[英]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.

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