2016-06-11 12 views
12

自己署名証明書を使用するサーバーへのGETリクエスト、送信する場合:PowerShellのInvoke-WebRequestからJSONを解析する方法は?

add-type @" 
    using System.Net; 
    using System.Security.Cryptography.X509Certificates; 
    public class TrustAllCertsPolicy : ICertificatePolicy { 
     public bool CheckValidationResult(
      ServicePoint srvPoint, X509Certificate certificate, 
      WebRequest request, int certificateProblem) { 
      return true; 
     } 
    } 
"@ 
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy 
$RESPONSE=Invoke-WebRequest -Uri https://yadayada:8080/bla -Method GET 
echo $RESPONSE 

を私は次の応答を取得しています:

StatusCode  : 200 
StatusDescription : OK 
Content   : {123, 10, 108, 111...} 
RawContent  : HTTP/1.1 200 OK 
        Content-Length: 21 
        Date: Sat, 11 Jun 2016 10:11:03 GMT 

        { 
         flag:false 
        } 
Headers   : {[Content-Length, 21], [Date, Sat, 11 Jun 2016 10:11:03 GMT]} 
RawContentLength : 21 

コンテンツは、いくつかの有線番号が含まれているので、私はRawContent後に行ってきましたヘッダーを無視して、JSONを内部でどのように解析するのですか?それらの番号からコンテンツを取得するためのきれいな方法がありますか?

+2

はyiouはすべて、または単に値でJSONが必要ですか? 'Invoke-WebRequest'をjsonのレスポンスを' psobject'に自動変換する 'Invoke-RestMethod'に置き換えることができますので、' $ response = Intoke-RestMethod -Uri "https:// yadayada:8080/bla"を使うことができます。 $ response.flag' –

+1

Frode F.に感謝します。これは私のパズルを解決します。私にとってはJSONの値は十分ですが、これを回答として再投稿すると私はそれを受け入れます – user52028778

答えて

21

あなたはpsobjectので、あなたが使用することができますにJSONレスポンスを自動変換するInvoke-RestMethodInvoke-WebRequestを置き換えることができます:

$response = Invoke-RestMethod -Uri "https://yadayada:8080/bla" 
$response.flag 
関連する問題