2012-12-18 33 views
23

可能重複:
Get $webclient.downloadstring to write to text file in Powershell
Powershell http post with .cer for auth如何在PowerShell中使用HTTP GET?

我有SMS系統中提供我從HTTP GET請求發送短信的功能:

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

我想要從PowerShell輸入文本的細節,只需瀏覽到此URL。我該怎麼做?

+10

我已經提名爲重開,因爲這似乎是最簡單的問題*只是*詢問要做'GET';鏈接的'愚蠢'會詢問如何將結果寫入文件,然後做一個帖子。 – AakashM

+0

'調用-的WebRequest -UseBasicParsing -URI HTTP:// example.com /' – kenorb

+0

相關:[PowerShell的等效捲曲](​​https://superuser.com/q/344927/87805)。 – kenorb

回答

19

正在下載Wget沒有必要; .NET框架具有內置的Web客戶端類

$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

這對我有效,但我必須在調用UrlEncode()之前運行'Add-Type -AssemblyName System.Web'。 – Vimes

36

在PowerShell中V3,看看在Invoke-WebRequestInvoke-RestMethod如:

$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響應,從'調用-WebRequest'輸出對象離開不理想,儘管你可以輸出'RawContent'財產,其中包括報頭。否則'Invoke-RestMethod'具有更好的輸出。 – Guss