如何为powershell Invoke-WebRequest或Invoke-RestMethod更改ReadWriteTimeout?

时间:2017-03-06 20:51:59

标签: powershell

我们正尝试使用下面提到的Rest API端点通过PowerShell Invoke-RestMethod和Invoke-WebRequest方法从Splunk下载搜索结果(两者都有效)。但是我们的一些搜索运行时间超过5分钟,因为Powershell的Invoke-RestMethod和Invoke-WebRequest方法没有返回任何数据写入本地文件,因此请求在5分钟后完成。我们想增加关于Powershell的Invoke-RestMethod和Invoke-WebRequest方法的https://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.readwritetimeout(v=vs.110).aspx页面上提到的ReadWriteTimeout,是否可能?

Splunk Rest API端点:  https://开头$ {}服务器:端口/服务/搜索/职位/导出

注意: - 此Splunk端点仅在完成搜索后才开始流式传输结果。

许多人可能会建议使用另一个CURL客户端来进行这个Rest API调用,我们已经尝试了它并且它正在工作,因为其他客户端如Cygwin中的curl没有默认的5分钟ReadWriteTimeout。

2 个答案:

答案 0 :(得分:1)

不,但您可以直接使用您引用的HttpWebRequest对象。

我建议您编写自己的函数Invoke-MyRestMethod,该函数使用带有R / W超时参数的类以及您需要的任何其他函数。

答案 1 :(得分:0)

MSDN page on Invoke-WebRequest表示有一个-TimeoutSec参数需要int32Invoke-RestMethod似乎支持相同的参数。