使用webrequest输出部分请求Powershell

时间:2015-02-05 14:23:28

标签: powershell

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

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

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

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

2 个答案:

答案 0 :(得分: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

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

答案 1 :(得分:0)

您需要的是Invoke-WebRequest。通过它,您可以获得一个对象作为具有名为Content的属性的响应,因此您可以执行以下操作:

public enum ExampleClass {
    INSTANCE("nothing"),
    ITEM;

    private String description;

    private ExampleClass(String description) {
         this.description = description;
    }

    static{
         ITEM = new ExampleClass("ITEM", 1, "this is an item");
    }
}

从页面获取结果。

希望有所帮助!