2015-02-05 86 views
0

在某些服务器上,我有一个运行作业的ASP.NET处理程序。这份工作可以轻松运行10分钟。我在构建服务器上使用此脚本使用Powershell调用此处理程序:使用webrequest输出部分请求Powershell

$url = 'http://<joburl>' 

$response = Invoke-RestMethod -Uri ($url) -method GET 
Write-Output -InputObject $response 

这工作正常,只是调用URL并让该作业执行。但我的工作是显示状态信息。它会不断刷新输出缓冲区以在请求期间显示此消息。所以在浏览器中,当它还在等待工作完成时显示这些消息。我的Powershell脚本在请求完成后显示这些消息。当请求仍在加载时,有什么方法可以显示这些状态消息吗?

+1

而不是将返回值存储在var然后输出它们,请尝试Invoke-RestMethod -Uri('http:// ') - 方法GET – StephenP 2015-02-06 01:34:26

+0

谢谢!但不幸的是,这似乎没有帮助。我仍然没有直接打印输出。 – 2015-02-06 16:44:09

回答

0

如果您想要实时查看结果,请确保您没有将结果存储到变量中。这是一个很好的介绍invoke-webrequest。这里是一个示例。

这将直接输出到控制台,因为它进来并被解析。

Invoke-RestMethod -Uri "https://gdata.youtube.com/feeds/api/videos?v=2&q=Powershell" -Method GET 

这会将所有数据存储在一个变量中,等待接收所有数据,然后将数据输出到控制台。

$result = Invoke-RestMethod -Uri "https://gdata.youtube.com/feeds/api/videos?v=2&q=Powershell" -Method GET 
$result 

试试这些示例,看看这是否是您遇到的问题。

0

你需要的是Invoke-WebRequest。因此,您可以通过名为Content的属性获取对象,因此您可以执行以下操作:

$(Invoke-WebRequest <uri>).Content 

从您的页面获取结果。

希望有帮助!