2016-05-10 12 views
1

APIを実行する必要があります。バージョン3.0で導入されたInvoke-RestMethodを使用できないようにPowerShell 2.0を呼び出します。PowerShell - Rest API 2.0のGETコール

PowerShell 2.0を使用してどのように行うことができますか?

私はこれまでに以下のことをしていますが、そこからデータを取得する方法はわかりません。好ましくは、テキストファイルである。

$request = [System.Net.WebRequest]::Create('http://www.google.com') 

どのようにしてデータを抽出できますか? ブラウザに貼り付けると、データが入った簡単なテキストファイルが返されます。

+0

[Invoke-WebRequestを持たないPowershellの.jsonファイルのPOST方法](http://stackoverflow.com/q/24436478/608772)と重複していません。私は、.NETクラスを呼び出す関数を与えます。 – JPBlanc

答えて

1

あなたがしていることは、.NET Frameworkを呼び出すことで、MSDN documentation to PowerShellのコードサンプルを変換することができます。出力はXML文書がある場合は、単にXMLに返された文字列をキャストすることができます

$client = New-Object System.Net.WebClient 
$data = $client.DownloadString('https://api.mysite.com/resource') 
Set-Content -Value $data -Path 'resource.txt' 

:PowerShellの2.0を使用している場合

しかし、私はそれが簡単にWebClientDownloadString方法を使用することを見つける

$xmlData = [xml]$data 

出力がJSONの場合は、PowerShell 2.0 ConvertFrom-Json and ConvertTo-Json implementationの関数を使用できます。

+0

こんにちはリチャード、大助け。私はデータを取得することができます。データをxmlに変換できません - 「複数のルート要素があります(行2、位置2)」というエラーが表示されます。 –

+0

これはおそらく、呼び出しているAPIがいくつかの余分なデータを追加している可能性があります。たとえば、新しい質問としてサンプルを投稿する場合は、[最初に検索を実行してください](http://stackoverflow.com/search?q=There+ +複数+ルート+要素+ライン+ 2%2C +位置+2)。 –

+0

こんにちはRichard、私には有効な点があり、改正を行う必要があります。ホストのAPIがダウンしているか、存在していない可能性があります。したがって、まずAPIコールをテストするロジックを追加します。 PowerShell 2.0のアイデアですか?おかげで –