2012-12-18 6 views
23

Mögliche Duplizieren:
Get $webclient.downloadstring to write to text file in Powershell
Powershell http post with .cer for authWie verwendet man HTTP GET in PowerShell?

ich ein SMS-System, das mir die Möglichkeit bieten, SMS von einer HTTP-GET-Anfrage zu senden:

http://smsserver/SNSManager/msgSend.jsp?uid&to=smartsms:*+001XXXXXX&msg="text of the message"&encoding=windows-1255 

I Ich möchte die Details zum Text von PowerShell eingeben und einfach zu dieser URL surfen. Wie kann ich es tun?

+10

Ich habe nominiert für wieder öffnen, da dies die zu sein scheint einfachste Frage, die * nur * fragt nach einem 'GET'; die verknüpften "Dupes" fragen nach dem Schreiben des Ergebnisses in eine Datei und einem Post. – AakashM

+0

'Invoke-WebRequest -UseBasicParsing -Uri http: // Beispiel.com /' – kenorb

+0

Verwandt: [PowerShell-Äquivalent von Curl] (https://superuser.com/q/344927/87805). – kenorb

Antwort

19

Das Herunterladen von Wget ist nicht erforderlich; das .NET Framework-Klassen-Web-Client eingebaut

$wc = New-Object system.Net.WebClient; 
$sms = Read-Host "Enter SMS text"; 
$sms = [System.Web.HttpUtility]::UrlEncode($sms); 
$smsResult = $wc.downloadString("http://smsserver/SNSManager/msgSend.jsp?uid&to=smartsms:*+001XXXXXX&msg=$sms&encoding=windows-1255") 
+4

Das funktionierte für mich, aber ich musste 'Add-Type -AssemblyName System.Web' ausführen, bevor ich UrlEncode() aufruft. – Vimes

36

In Powershell v3, einen Blick auf die Invoke-WebRequest und Invoke-RestMethod zB haben.

$msg = Read-Host -Prompt "Enter message" 
$encmsg = [System.Web.HttpUtility]::UrlEncode($msg) 
Invoke-WebRequest -Uri "http://smsserver/SNSManager/msgSend.jsp?uid&to=smartsms:*+001XXXXXX&msg=$encmsg&encoding=windows-1255" 
+4

Falls Sie sich die HTTP-Antwort ansehen möchten, lässt das Ausgabeobjekt von 'Invoke-WebRequest' viel zu wünschen übrig, obwohl Sie die' RawContent'-Eigenschaft ausgeben könnten, die die Header enthält. Sonst hat 'Invoke-RestMethod' eine bessere Ausgabe. – Guss

Verwandte Themen