gpt4 book ai didi

azure - 使用 HTTP 触发器调用逻辑应用时出现错误 DirectApiRequestHasMoreThanOneAuthorization

转载 作者:行者123 更新时间:2023-12-05 04:55:04 28 4
gpt4 key购买 nike

我创建了一个带有 HHT 触发响应的简单逻辑应用程序,以在 JSON 对象中进行测试,然后将其传递到团队 channel 中。我已经在 Postman 中成功测试了它,我将授权类型设置为“无身份验证”。当我尝试使用 powershell 调用相同的方法时,出现错误
{“error”:{“code”:“DirectApiRequestHasMoreThanOneAuthorization”,“message”:“请求同时具有 SAS 身份验证方案和“无”授权方案。只能使用一种方案。"}}下面是我正在使用的 PowerShell 代码。请建议我应该改变什么。

$body ="{
`"testName`": `"NewTest`"
}"| ConvertTo-Json
$body = $body | ConvertFrom-Json
$supportAreaUri = 'https://<URL>'
$supportAreaUri = [uri]::EscapeUriString($supportAreaUri)
$Header = @{Authorization="None"}

Invoke-RestMethod -Method Post -Uri $supportAreaUri -ContentType application/json -Body $body -Headers $Header

这是逻辑应用程序的屏幕截图 enter image description here

最佳答案

当您使用“收到 HTTP 请求时”触发器创建逻辑应用时,它将生成请求的 URL,例如 https://prod-04.eastasia.logic.azure.com:443/workflows/830xxxxxxxxa5ebb/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=l5xxxxxxxxxzMRM。该 url 使用 SAS token 进行保护,SAS token 位于查询字符串中的基本 url 之后。当您在 postman 中请求时,它将在“Params”中填充查询字符串,如下图所示: enter image description here

但是当您在 powershell 中请求 url 时,您使用 Authorization="None" 指定 header ,请求方法将假定您不使用任何身份验证,并且与 SAS token 冲突。因此它显示错误消息该请求具有您提供的 SAS 身份验证方案和“无”授权方案

要解决这个问题,只需请求不带-Header的url即可。

Invoke-RestMethod -Method Post -Uri $supportAreaUri  -ContentType application/json -Body $body

顺便说一句:当您请求不带-Header的网址时,可能会显示此错误消息您没有执行“run”操作的权限在范围“/triggers/manual/paths/” 上。这是由 $supportAreaUri = [uri]::EscapeUriString($supportAreaUri) 行引起的。实际上,您不需要执行 escapeUriString,因此只需删除此行并再次请求即可。

关于azure - 使用 HTTP 触发器调用逻辑应用时出现错误 DirectApiRequestHasMoreThanOneAuthorization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65600530/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com