In Windows PowerShell 3.0 wurde Invoke-RestMethod Cmdlet eingeführt.PowerShell WebRequest POST
Invoke-RestMethod Das Cmdlet akzeptiert -Body<Object>
Parameter zum Festlegen des Hauptteils der Anforderung.
Aufgrund einer bestimmten Einschränkungen Invoke-RestMethod Cmdlet konnte in unserem Fall nicht verwendet werden. Von der anderen Seite eine alternative Lösung in Artikeln beschrieben InvokeRestMethod for the Rest of Us paßt unsere Bedürfnisse:
$request = [System.Net.WebRequest]::Create($url)
$request.Method="Get"
$response = $request.GetResponse()
$requestStream = $response.GetResponseStream()
$readStream = New-Object System.IO.StreamReader $requestStream
$data=$readStream.ReadToEnd()
if($response.ContentType -match "application/xml") {
$results = [xml]$data
} elseif($response.ContentType -match "application/json") {
$results = $data | ConvertFrom-Json
} else {
try {
$results = [xml]$data
} catch {
$results = $data | ConvertFrom-Json
}
}
$results
Aber es ist für eine GET-Methode nur vorgesehen. Könnten Sie bitte vorschlagen, wie Sie dieses Codebeispiel um die Möglichkeit erweitern können, den Nachrichtentext mithilfe der Methode POST
(ähnlich Body
in Invoke-RestMethod
) zu senden?
danke, Trevor! Dies ist die Art und Weise, wie ich dachte, es sollte umgesetzt werden, war aber nicht sicher, ob dies der beste Weg ist –
Sie sind herzlich willkommen, @VadimGremyachev :) Ich freue mich, das hat Ihnen geholfen! –
@TrevorSullivan Wie würde der Körper aussehen, wenn ich einen JSON drauf habe? – Campinho