【问题标题】:How can I use HTTP GET in PowerShell? [duplicate]如何在 PowerShell 中使用 HTTP GET? [复制]
【发布时间】:2012-12-05 19:00:20
【问题描述】:

可能重复:
Get $webclient.downloadstring to write to text file in Powershell
Powershell http post with .cer for auth

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

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

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

【问题讨论】:

  • 我已经提名重新开放,因为这似乎是 just 提出的关于做GET 的最简单的问题;链接的“骗子”询问将结果写入文件并发布帖子。
  • Invoke-WebRequest -UseBasicParsing -Uri http://example.com/

标签: http powershell http-get


【解决方案1】:

在 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"

【讨论】:

  • 如果您想查看 HTTP 响应,Invoke-WebRequest 的输出对象还有很多不足之处,尽管您可以输出包含标头的 RawContent 属性。否则Invoke-RestMethod 有更好的输出。
【解决方案2】:

不需要下载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")

【讨论】:

  • 这对我有用,但我必须在调用 UrlEncode() 之前运行 Add-Type -AssemblyName System.Web
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-01
  • 1970-01-01
  • 2013-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多