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