sec.gov API调用在PowerShell 7.9.3报错,求解决方法
解决PowerShell 7.x调用SEC API的UserAgent格式错误问题
问题根源
PowerShell 7.x对HTTP请求头的格式校验比5.1版本更严格,直接通过-UserAgent参数传入带空格的字符串时,会被误判为不符合格式规范——它会将空格后的内容识别为额外的请求头字段,从而抛出格式无效的错误。
可行解决方案
方案1:通过Headers哈希表指定User-Agent(推荐)
绕过-UserAgent参数,直接用-Headers构造包含合规User-Agent的哈希表,这种方式能确保请求头被正确解析:
$headers = @{ "User-Agent" = "ABC user@abc.com" } $result = Invoke-RestMethod "https://data.sec.gov/submissions/CIK0001318605.json" -Headers $headers
方案2:对UserAgent字符串添加额外引号(备选)
如果坚持使用-UserAgent参数,可以给整个UserAgent字符串套上双引号(外层用单引号包裹),强制PowerShell将其识别为单一值:
$result = Invoke-RestMethod "https://data.sec.gov/submissions/CIK0001318605.json" -UserAgent '"ABC user@abc.com"'
补充说明
SEC要求的User-Agent格式为公司名称 + 空格 + 联系邮箱,两种方案都能满足该格式要求,其中方案1是最稳定的解决方式,不会受PowerShell版本对参数解析的影响。
内容的提问来源于stack exchange,提问作者dharmatech
相关产品推荐
相关产品推荐

