Rufen Sie WebRequest in PowerShell 2.0 auf

Migel Hewage Nimesha 15 Februar 2024
  1. Statischer PowerShell-Member-Operator ::
  2. Erstellen Sie eine Webanforderung mit der Klasse WebRequest, um WebRequest in PowerShell 2.0 aufzurufen
Rufen Sie WebRequest in PowerShell 2.0 auf

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:

Operator für statische PowerShell-Member – Ausgabe

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:

Rufen Sie WebRequest in PowerShell 2.0 auf – Ausgabe 1

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.

Rufen Sie WebRequest in PowerShell 2.0 auf – Ausgabe 2

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.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

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.