当前位置:  开发笔记 > 编程语言 > 正文

使用PassThru时,Invoke-RestMethod OutFile为空

如何解决《使用PassThru时,Invoke-RestMethodOutFile为空》经验,为你挑选了0个好方法。

使用PowerShell 4.0和Invoke-RestMethod cmdlet.我遇到了-OutFile和-PassThru选项的问题.每当我添加-PassThru选项时,我的-OutFile都会被创建,但内容为空!

根据Invoke-RestMethod文档,当这些选项一起使用时,输出文件和管道对象都应该可用."-OutFile将响应主体保存在指定的输出文件中.[...]要将结果发送到文件和管道,请使用Passthru参数."

这是重复我遇到的问题测试.在这里,我正在调用一个rest api,试图保存对文件的响应并反序列化为一个powershell对象.

"POWERSHELL VERSION $($host.Version.ToString())"
$date = Invoke-RestMethod "http://date.jsontest.com" -OutFile "OutFile.txt" -PassThru
Get-Content "OutFile.txt"
# FILE IS EMPTY!!! PASSTHRU SEEMS TO RESULT IN EMPTY FILE
$date
# powershell object has the date received from api

以下是两个测试,用于验证Invoke-RestMethod的正常功能,而不使用PassThru选项

# ... Test # 1, call rest api and deserialize into powershell object
$date = Invoke-RestMethod "http://date.jsontest.com"
$date
# Output shows the date retrieved from sample restful service
# ... Test # 2, call rest api and save response body directly to a file
Invoke-RestMethod "http://date.jsontest.com" -OutFile "OutFile.txt"
Get-Content "OutFile.txt"
# Output shows contents of rest api response body (json text)

我认为这些测试应该帮助其他人看到我遇到的麻烦.我的问题是,是否有一些我缺少的东西使这项工作,或者这可能是cmdlet的错误?我已经用Google搜索了一些解决方案,没有明显的报道此问题.我想使用-OutFile作为另一个与内容编码相关的Invoke-RestMethod问题的解决方法的一部分,如Bug所述?Invoke-RestMethod和UTF-8数据.-PassThru选项有助于我查看返回的数据并终止多请求(分页)odata结果集的迭代.

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有