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

例外オブジェクトからストリームを読み取る必要があると思います

$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 に答える
0

呼び出しの出力をオブジェクトにシャッフルして、そのオブジェクトにエラーを含むプロパティがあるかどうかを確認してください。

$MyApiCall = New-WebRequest 
于 2013-02-01T17:15:21.827 に答える