0

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

例子:

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

在 Chrome 或 Firefox 中查询 API 时,我看到了这个 XML。

但是,当使用 IE 或 Powershell(WebClient 和 WebRequest)查询时,我只能看到“400”异常。我找不到深入研究异常的 XML。

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

4

3 回答 3

0

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

$MyApiCall = New-WebRequest 
于 2013-02-01T17:15:21.827 回答
0

我认为您必须从异常对象中读取流

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

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

于 2013-02-01T17:23:56.257 回答
0

我建议你抓住Fiddler并检查来自 Chrome 的请求,然后检查来自 PowerShell 的失败请求。这可能只是提供正确标题的问题。

于 2013-02-01T22:02:04.653 回答