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

如何解决Invoke-WebRequest的Headers参数绑定类型转换错误?

解决PowerShell中调用OpenAI API的参数绑定错误

错误原因

PowerShell里的curl是Invoke-WebRequest的内置别名,并非真正的curl工具。Invoke-WebRequest的-Headers参数要求传入字典类型(System.Collections.IDictionary),而你用了真正curl的字符串格式传递头部信息,导致类型转换失败。

解决方案

方法1:调用真正的curl工具

直接指定curl.exe(Windows 10及以上系统默认自带,若没有可通过Windows功能或包管理器安装),保留原命令格式:

curl.exe ${OPENAI_API_BASE%/}/openai/deployments/try-davinci/completions?api-version=2022-06-01-preview -H "Content-Type: application/json" -H "Authorization: Bearer $accessToken" -d '{ "prompt": "Tell me a funny story." }'

方法2:改用PowerShell原生命令(推荐)

使用Invoke-RestMethod或Invoke-WebRequest,按照PowerShell的语法要求构造头部和请求体:

# 构造请求头部字典
$headers = @{
    "Content-Type" = "application/json"
    "Authorization" = "Bearer $accessToken"
}

# 构造请求体并转为JSON格式
$body = @{
    prompt = "Tell me a funny story."
} | ConvertTo-Json

# 发送请求(Invoke-RestMethod会直接返回解析后的JSON结果)
Invoke-RestMethod -Uri "${OPENAI_API_BASE%/}/openai/deployments/try-davinci/completions?api-version=2022-06-01-preview" -Headers $headers -Method Post -Body $body

如果需要获取原始响应(如状态码、响应头),可以用Invoke-WebRequest替代Invoke-RestMethod,用法基本一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 13:12:44