powershellを使用してSwaggerベースのAPIにアクセスしようとしていますが、webSessionでinvoke-restmethodを使用してPOSTメソッドを実行する必要があると思われます。 私はCSRFPowershell Invoke-RestMethodにクッキーの値がありません
$CSRF = Invoke-RestMethod -Uri ($Uri+'csrf-token') -Method Get -Credential $Creds -ContentType 'application/json'-SessionVariable websession
を要求することにより開始し、私は何の問題もなく、正しいトークン値を見ることができます。 websession変数を見ると、私はいくつかのデータを持っていますが、私は全くクッキー値を取得しません。したがって、セッション変数を使用して2番目のリクエストを送信した場合:
Invoke-RestMethod -Method Post -Uri ($Uri+'post') -Headers $Header -Body $Body -Credential $creds -WebSession $websession
クッキー値がないために失敗します。私がFirefox経由で通常のリクエストをした場合、jsessionidなどのクッキーが表示されますが、これらの値をどこで入手するのかわかりません(ここで私は無知になります。私はinvoke-restmethod PSで)
最初の呼び出しでSessionVariableに$がありませんか?次のようにする必要があります:$ webSession、ドキュメントによると: "ウェブリクエストセッションを指定します。ドル記号($)を含む変数名を入力してください" https://technet.microsoft.com/en-us/library/hh849971.aspx –
@DavidBrabant - ありがとうDavid - あなたが提供したリンクからそのセッションからセッション変数を生成している場合は、sessionvariableに$が必要であるとは思わない - "Webリクエストセッションを作成するには、 sign)をInvoke-RestMethodコマンドのSessionVariableパラメータの値に設定します。Invoke-RestMethodはセッションを作成し、変数に保存します。後続のコマンドでは、変数をWebSessionパラメータの値として使用します。 – AskJarv