使用 PowerShell 5,我通过执行以下操作从 REST 端点下载:
$result = Invoke-RestMethod -Method Get -Uri "http://example.com/endpoint/item"
结果大小约为 4Mb+。有时 $result
不是我期望的 PSObject
,而是一个字符串,其中包含不完整的 JSON 响应。
所以不知何故我怀疑有超时,或者发生了什么事。但如果是这样,那么我尝试使用非常大的 TimeoutSec
参数,如下所示:
$result = Invoke-RestMethod -Method Get -Uri "http://example.com/endpoint/item" -TimeoutSec 10000
我运气不好:响应损坏(JSON 字符串中缺少部分)。
无论如何,如果涉及超时,它不应该抛出错误吗?
另外,问题可能不在客户端,而是服务器端?我很困惑哪一方在这里负责。
最佳答案
如果它能够成功转换 JSON 字符串,您似乎只能从 Invoke-RestMethod
获得 PSObject。对于 4MB 的响应,这可能行不通。您可以通过 ConvertFrom-Json
传递字符串来自行检查,这可能会引发错误。
最近在这里回答了类似的问题:
简而言之,您需要创建一个 JavaScriptSerializer 并适本地设置 MaxJsonLength。
关于json - Powershell Invoke-RestMethod 响应不完整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37031658/