Rufen Sie WebRequest in PowerShell 2.0 auf
-
Statischer PowerShell-Member-Operator
::
-
Erstellen Sie eine Webanforderung mit der Klasse
WebRequest
, um WebRequest in PowerShell 2.0 aufzurufen

Ab PowerShell Version 3.0 wurde das Cmdlet Invoke-WebRequest
eingeführt, um HTTP- oder HTTPS-Webanfragen zu senden und die Antwort zurückzubekommen.
Davor wurde in PowerShell Version 2.0 die Basisklassenbibliothek .Net
verwendet, um Webanfragen zu senden. Hierfür können sowohl die Klassen WebRequest
als auch HttpWebRequest
verwendet werden.
Die Stärke von PowerShell besteht darin, dass Sie problemlos auf integrierte .Net
-Klassen und -Methoden zugreifen können.
Statischer PowerShell-Member-Operator ::
Der bedeutendste Vorteil von PowerShell besteht darin, dass es die Möglichkeit bietet, auf .Net
-Klassen innerhalb von PowerShell-Skripten zuzugreifen. Der Static-Member-Operator ruft die statischen Methoden und Eigenschaften innerhalb einer .Net
-Bibliotheksklasse auf.
Angenommen, wir möchten auf die Eigenschaft Now
der Klasse DateTime
zugreifen. Idealerweise würde es das aktuelle Systemdatum und die Uhrzeit zurückgeben.
Wir können diese Eigenschaft mit PowerShell wie folgt aufrufen.
[datetime]::Now
Ausgang:
Wie erwartet wurden das aktuelle Datum und die Uhrzeit gedruckt.
Erstellen Sie eine Webanforderung mit der Klasse WebRequest
, um WebRequest in PowerShell 2.0 aufzurufen
Die Klasse WebRequest
ist ein .NET
-basiertes Abstract, das implementiert ist, um eine Anfrage für einen bestimmten URI (Uniform Resource Identifier) aufzurufen. Es befindet sich im System.Net
-Paket des .NET
-Frameworks.
Im Folgenden finden Sie die Syntax zum Aufrufen einer Webanforderung von PowerShell.
[System.Net.WebRequest]::Create(uri)
Dabei ist uri
die URI der Website.
Machen wir eine einfache GET
-Anfrage an https://google.com
.
$req = [System.Net.WebRequest]::Create('https://google.com')
Dies würde ein PowerShell-Objekt $req
erstellen, das weiter manipuliert werden kann. Wir können die verfügbaren Eigenschaften und Methoden für das Objekt $req
auflisten.
$req | Get-Member
Ausgang:
Wir können die Methode GetResponse()
verwenden, um aus dieser Anfrage heraus auf das Response-Objekt zuzugreifen.
$resp = $req.GetResponse()
Schreiben Sie das Objekt $resp
in das PowerShell-Konsolenfenster.
Das gleiche Verfahren kann mit einigen zusätzlichen Informationen befolgt werden, wenn Sie eine POST
-Anfrage bearbeiten müssen. In diesem Fall müssen Sie die request
-Methode als POST
verwenden.
Außerdem müssen der Anforderungsinhaltstyp und der Textkörper wie folgt aufgebaut und übergeben werden.
$request = [System.Net.WebRequest]::Create('https://abc.com');
$request.Method = "POST";
$request.ContentType = "application/x-www-form-urlencoded";
$bytes = [System.Text.Encoding]::ASCII.GetBytes("name=tony&age=55");
$request.ContentLength = $bytes.Length;
$requestStream = $request.GetRequestStream();
$requestStream.Write( $bytes, 0, $bytes.Length );
$requestStream.Close();
$request.GetResponse();
Sie können die obige Implementierung verwenden, um mit einer POST
-Anforderung unter Verwendung der WebRequest
-Klasse fortzufahren.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.