如何在PowerShell中使用HTTP GET?

ale*_*lex 37 powershell http http-get

可能重复:
获取$ webclient.downloadstring以写入Powershell Powershell http 文本中的文本文件,
其中包含.cer for auth

我有一个SMS系统,使我能够从HTTP GET请求发送SMS:

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

我想在PowerShell中输入文本的详细信息,然后浏览此URL.我该怎么做?

Kei*_*ill 44

在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"
Run Code Online (Sandbox Code Playgroud)

  • 如果你想查看HTTP响应,来自`Invoke-WebRequest`的输出对象有很多不足之处,尽管你可以输出包含标题的`RawContent`属性.否则`Invoke-RestMethod`有更好的输出. (4认同)

alr*_*roc 19

下载Wget不是必需的; .NET Framework内置了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")
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用,但我必须在调用UrlEncode()之前运行`Add-Type -AssemblyName System.Web`. (5认同)