我正在尝试通过 API REST 访问应用程序,但我在使用 ADF 的过程中卡住了。 基本上这个过程包括两个步骤。 1 - 获取会话 (https://horizon.akixi.com/CCS/API/v1/session) 2 - 使用用户名和密码进行身份验证 (https://horizon.akixi.com/CCS/API/v1/login?locale=en_GB")。
我创建了一个链接服务 (Rest) 并将基本 URL 设置为 (https://horizon.akixi.com/CCS/API/v1/session) 匿名身份验证。
然后我创建了一个数据集来指向这个 API,最后我创建了一个“复制数据”并尝试在附加标题上设置身份验证的详细信息,但它不起作用,我收到了错误 405。
基本上我可以使用 Powershell 运行以下脚本并且它按预期工作,但需要在 ADF 上使用它。
Powershell 中的脚本就是这个。
$user = "xxxxxx@mail.com"
$pass = "123456789"
$secpasswd = ConvertTo-SecureString $pass -AsPlainText -Force
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$pass)))
#Get Session
$url = "https://horizon.akixi.com/CCS/API/v1/session"
$response = Invoke-RestMethod -uri $url -Method Post -SessionVariable se
#Authentication
Write-Host "Authenticating" -ForegroundColor Green
$headers = @{
'Authorization' = "Basic $base64AuthInfo"
}
$headers
$url = "https://horizon.akixi.com/CCS/API/v1/login?locale=en_GB"
$response = Invoke-RestMethod -uri $url -Headers $headers -Method Get -WebSession $se
#List Reports
$url = "https://horizon.akixi.com/CCS/API/v1/report"
$response = Invoke-RestMethod -uri $url -Method Get -WebSession $se
$response
谢谢大家。
答案 0 :(得分:0)
由于这 3 个步骤是分开的,并且只有最后一个步骤获取数据,因此您应该将该过程分解为多个活动。
前两步使用 Web Activity,
从网络活动中提取会话变量或身份验证。将其传递给复制活动。复制活动应针对