【问题标题】:Powershell Invoke-RestMethod incomplete responsePowershell Invoke-RestMethod 响应不完整
【发布时间】:2016-05-04 15:09:00
【问题描述】:

使用 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 rest http powershell


【解决方案1】:

看来您只能从Invoke-RestMethod 获得一个 PSObject,如果它能够成功转换 JSON 字符串。对于 4MB 的响应,这可能不起作用。您可以通过将字符串传递给ConvertFrom-Json 自己检查这一点,这可能会引发错误。

最近在这里回答了类似的问题:

简而言之,您需要创建一个 JavaScriptSerializer 并适当设置 MaxJsonLength。

【讨论】:

    猜你喜欢
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 2015-06-20
    • 1970-01-01
    相关资源
    最近更新 更多