You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell调用Graph API时Invoke-RestMethod报400错误如何解决

问题修复方案

核心错误原因

你构造请求体$body时存在两处语法问题,直接导致接口返回400错误:

  • 你将PowerShell专属的哈希表语法@{}、数组声明语法@()直接写入了纯JSON字符串中,JSON标准规范仅识别对象用{}、数组用[],不识别带@前缀的PowerShell语法
  • JSON同级属性之间必须用英文逗号分隔,你的web属性和identifierUris属性之间遗漏了逗号

修复方案

有两种可选修复方式,推荐使用第二种,避免手动写JSON出现语法错误:

方式1:直接修正JSON字符串

将你的$body声明部分替换为以下代码即可:

$body = @'
{
    "web": {
        "redirectUris": [
            "https://signin.aws.amazon.com/saml"
        ]
    },
    "identifierUris": [
        "https://signin.aws.amazon.com/saml"
    ]
}
'@

方式2:通过PowerShell对象转JSON(更稳妥)

先构造PowerShell哈希表结构,再通过内置命令转成标准JSON,完全避免手动写JSON的语法问题:

# 构造PowerShell层级对象
$bodyObj = @{
    web = @{
        redirectUris = @("https://signin.aws.amazon.com/saml")
    }
    identifierUris = @("https://signin.aws.amazon.com/saml")
}
# 转换为标准JSON,Depth参数防止嵌套层级过深被自动截断
$body = $bodyObj | ConvertTo-Json -Depth 3

修改完成后重新执行脚本即可正常调用接口。

内容的提问来源于stack exchange,提问作者Praveen sivadasan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 09:24:00