如何使用Powershell查找API调用返回的XML错误?

时间:2013-02-01 16:32:57

标签: powershell webclient webrequest

我有一个我正在尝试测试的API。 API会返回有关错误的特定注释。

示例:

<errors>
    <error>distance.out.of.range</error>
</errors>

在Chrome或Firefox中查询API时,我会看到此XML。

但是,当使用IE或Powershell(WebClient和WebRequest)查询时,我只能看到“400”异常。我找不到XML钻取到异常中。

使用try / catch处理异常很好,但我错过了解失败查询的细节。我怎样才能找到XML?

3 个答案:

答案 0 :(得分:0)

尝试将调用的输出混洗到对象中,并查看该对象是否具有包含错误的属性。

$MyApiCall = New-WebRequest 

答案 1 :(得分:0)

我认为您必须从异常对象

中读取流
$req = [system.Net.WebRequest]::Create($url)
try {
    $res = $req.GetResponse()
} catch [System.Net.WebException] {
    $res = $_.Exception.Response
}

$ res将有一个名为GetResponseStream()的方法,您可以使用它来读取数据。

答案 2 :(得分:0)

我建议您抓取Fiddler并检查适用于Chrome的请求,然后检查PowerShell失败的请求。这可能只是提供正确的标题。