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

PowerShell调用RestMethod传递Bearer及Body哈希表时遇错误求助

Eloverblik API调用错误分析与修复

错误原因拆解

1. 初始InvalidOperation错误

直接传递哈希表作为Invoke-RestMethod的-Body参数时,PowerShell默认会将哈希表序列化为application/x-www-form-urlencoded格式的表单数据,但Eloverblik API要求接收JSON格式的请求体,接口无法识别表单数据,因此抛出InvalidOperation错误。

2. 转换JSON后的ParserError错误

出现「哈希字面量缺少等号」的语法错误,完全是哈希表构造时的语法问题:

  • 某个键值对未使用=连接键和值(比如错误写为start @{date='2024-01-01'},正确应为start = @{date='2024-01-01'})
  • 嵌套哈希表的括号、逗号使用不规范,导致PowerShell无法正确解析哈希字面量

修复方案与正确脚本

步骤1:构造符合语法的请求头与请求体哈希表

确保所有键值对都用=连接,嵌套结构层级清晰:

# 构造Bearer认证请求头
$headers = @{
    'Authorization' = 'Bearer 你的访问令牌'
    'Content-Type'  = 'application/json'
}

# 按照API要求的JSON结构构造哈希表
$bodyHash = @{
    start = @{
        date = '2024-01-01'
        hour = 0
    }
    end = @{
        date = '2024-01-02'
        hour = 0
    }
    aggregation = 'Hour' # 示例字段,以实际API要求为准
}

步骤2:将哈希表转换为JSON字符串

必须指定-Depth参数(默认Depth为2,若嵌套层级更深会截断数据),确保JSON结构完整:

$jsonBody = $bodyHash | ConvertTo-Json -Depth 3

步骤3:发起POST请求

明确指定请求方法、URL、请求头和JSON格式的请求体:

$apiUrl = 'https://api.eloverblik.dk/api/你的目标接口路径'
$response = Invoke-RestMethod -Uri $apiUrl -Method Post -Headers $headers -Body $jsonBody

关键注意事项

  • 始终为Invoke-RestMethod指定Content-Type: application/json请求头,明确告知接口请求体格式
  • 转换JSON时根据实际嵌套层级调整-Depth参数,避免数据丢失
  • 检查哈希表语法:所有键值对必须有=,嵌套哈希表用@{}包裹,同级键值对之间用换行或逗号分隔

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:55:12