PowerShell-WebRequest POST
In Windows PowerShell 3.0 eingeführt wurde Invoke-RestMethod cmdlet.
Invoke-RestMethod cmdlet akzeptiert -Body<Object>
parameter für die Einstellung der body der Anfrage.
Aufgrund eines gewissen Einschränkungen Invoke-RestMethod cmdlet konnte nicht verwendet werden, in unserem Fall. Von der anderen Seite, ist eine alternative Lösung beschrieben in Artikel InvokeRestMethod für den Rest von Uns unseren Bedürfnissen anpasst:
$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 einen GET-Methode nur.
Könnten Sie bitte vorschlagen, wie Sie erweitern in diesem Codebeispiel wird mit der Fähigkeit zum senden die Anfrage mit POST
Methode (ähnlich Body
parameter in Invoke-RestMethod
)?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste, ändern Sie die Zeile, die aktualisiert die HTTP-Methode.
Als Nächstes müssen Sie den Nachrichtentext in das
HttpWebRequest
Objekt. Um das zu tun, müssen Sie schnappen Sie sich eine Referenz auf das request-stream, und dann Daten hinzufügen.HINWEIS: PowerShell-Core edition ist ab sofort open source auf GitHub, und cross-Plattform auf Linux, Mac und Windows. Probleme mit der
Invoke-RestMethod
cmdlet sollte gemeldet werden, auf die GitHub-issue-tracker für dieses Projekt, so können Sie verfolgt und behoben.$Body = [reports[]]$filecontent;
ich hab eine Frage hier und nun komme ich über diese Antwort. Wie denken Sie, diese Lösung funktioniert in meinem Fall?