2012-12-18 24 views
23

Olası Çoğalt:
Get $webclient.downloadstring to write to text file in Powershell
Powershell http post with .cer for authPowerShell'de HTTP GET nasıl kullanılır?

Bana bir HTTP GET isteği SMS gönderme olanağı sağlayan bir SMS sistemi var:

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

ben PowerShell'deki metne ayrıntıları girmek ve sadece bu URL'ye gezinmek istiyorum. Nasıl yapabilirim?

+10

Bunun gibi görünüyor olarak yeniden aday oldum En basit soru * sadece * bir "GET" yapmasını ister; Bağlantılı 'dupes'lar' sonucu bir dosyaya yazma ve bir gönderiyi yazma ile ilgili soru sorar. – AakashM

+0

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

+0

İlgili: [PowerShell curl eşdeğeri] (https://superuser.com/q/344927/87805). – kenorb

cevap

19

Wget'i indirmek gerekli değildir; .NET Framework oluşturulmuş bir web istemcisi sınıfları vardır

PowerShell v3 olarak
$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

Bu benim için çalıştı, ancak UrlEncode() çağırmadan önce 'Add-Type -AssemblyName System.Web 'çalıştırmam gerekiyordu. – Vimes

36

, örneğin Invoke-WebRequest ve Invoke-RestMethod de bakabilirsiniz.

$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

HTTP yanıtına bakmak istediğinizde, 'Invoke-WebRequest' nesnesinin çıkış nesnesi, üstbilgileri içeren 'RawContent' özelliğinin çıktısını almanıza rağmen, arzulanandan çok daha fazlasını bırakır. Aksi halde 'Invoke-RestMethod' daha iyi çıktıya sahiptir. – Guss

İlgili konular