json - Powershell Invoke-RestMethod 响应不完整

标签 json rest http powershell

使用 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/

相关文章:

json - 在 Matlab 结构体的字段名称中使用句点

java - 从邮政编码获取纬度/经度

java - 相同的 build.gradle 文件获取不同版本的依赖项(org.json :json)

java - 是否可以设置 Undertow 来为 Spring REST 端点提供服务?

http - "name"web pdf 在 Acrobat 中更好的默认保存文件名?

java - 如何在java中的http post中发送json对象

rest - 使用 Postman 测试 REST 持久性端点

html - 我可以使用协议(protocol)相关的 <base> 标签吗?

python - 在twisted中取消一组HTTP请求

android - 将 Twitter Fabric REST API 解析为 JSON 字符串