2012-12-18 18 views
23

Powiel możliwe:
Get $webclient.downloadstring to write to text file in Powershell
Powershell http post with .cer for authJak korzystać z HTTP GET w PowerShell?

mam system SMS, która zapewni mi możliwość wysyłania wiadomości SMS z żądaniem HTTP GET:

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

I chcesz wprowadzić szczegóły do ​​tekstu z PowerShell i po prostu surfować pod tym adresem URL. Jak mogę to zrobić?

+10

byłem nominowany do ponownego otwarcia, jak to wydaje się być najprostsze pytanie, które * tylko * prosi o zrobienie 'GET'; połączone "dupe" pytają o zapisanie wyniku w pliku i wykonanie postu. – AakashM

+0

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

+0

Powiązane: [PowerShell odpowiednik curl] (https://superuser.com/q/344927/87805). – kenorb

Odpowiedz

19

Pobieranie Wget nie jest konieczne; .NET Framework ma klasy klienta sieci Web zbudowany w

$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

To działało dla mnie, ale musiałem uruchomić 'Add-Type -AssemblyName System.Web' przed wywołaniem UrlEncode(). – Vimes

36

W PowerShell v3, spojrzeć na Invoke-WebRequest i Invoke-RestMethod np.

$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

Jeśli chcesz spojrzeć na odpowiedź HTTP, obiekt wyjściowy z 'Invoke-WebRequest' pozostawia wiele do życzenia, chociaż możesz wypisać właściwość' RawContent' zawierającą nagłówki. W przeciwnym razie 'Invoke-RestMethod' ma lepsze wyniki. – Guss

Powiązane problemy