我正在开发Powershell脚本,以使用Invoke-WebRequest
/ Invoke-RESTMethod
通过其API在UiPath Orchestrator中执行功能。该请求在API测试应用程序中有效,但在Powershell中无效。
我能够通过Invoke-RestMethod
成功生成身份验证承载密钥,但是API的其他功能不起作用。
$auth = @{
tenancyName = ''
usernameOrEmailAddress = '****'
password = '****
}
$authjson = $auth | ConvertTo-Json
$authkey = Invoke-RestMethod 'https://****************.com/api/Account/Authenticate' -Method Post -Body $authjson -ContentType 'application/json'
$authjson = $authkey | ConvertTo-Json
return $authjson
此脚本有效并返回验证其他请求所需的承载密钥。
$job = @{
startInfo = {
ReleaseKey = "efb58582-fcd1-4453-ab0b-d39e1be57392"
Strategy = "All"
RobotIds = []
NoOfRobots = "0"
JobsCount = "0"
Source = "Manual"
InputArguments = "" }
}
$jobjson = $job | ConvertTo-Json
$headers = @{}
$headers.Add("authorization", "Bearer *bearer key here*")
$response = Invoke-WebRequest -Uri 'https://**************.com/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs' -Method Post -Headers $headers -Body $jobjson -ContentType application/json
return $response | ConvertTo-Json
此脚本应使用上一个身份验证脚本中的承载密钥在UiPath Orchestrator上启动作业,但它会返回以下错误消息:
Invoke-WebRequest:{“ message”:“不支持 非开放类型。“,” errorCode“:0,” resourceIds“:null}在 C:\ Users \ adavenport \ Documents \ UiPath \ warehousejournaltest \ apiAuthTest3.ps1:17 字符:13 + $ response =调用WebRequest -Uri'************** ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~ + CategoryInfo:InvalidOperation:(System.Net.HttpWebRequest:HttpWebRequest)[Invoke-WebRe quest], WebException + FullyQualifiedErrorId:WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebReque stCommand
据我所知,这个错误似乎表明请求的json主体中的字段不正确,但是我正在直接从其正常工作的API测试应用程序中复制并粘贴该请求,因此字段应该正确。
答案 0 :(得分:0)
UiPath Orchestrator现在带有Swagger。因此,请登录您的Orchestrator,您可以确保API调用正确无误(将/swagger/ui/index#/
添加到URL)。
在此处阅读更多信息:https://docs.uipath.com/orchestrator/v2019-fastTrack/reference