【问题标题】:Invoke-WebRequest for PowerShell Version 2PowerShell 版本 2 的调用 WebRequest
【发布时间】:2015-07-03 11:35:17
【问题描述】:

什么相当于 PowerShell 版本 2 中的 Invoke-WebRequest 函数。这是我正在尝试使用我的函数执行的操作,因为我在 Windows Server 2003 上工作,因此无法升级到 PowerShell 4。

Invoke-WebRequest $uri -Body ($baseMessage | ConvertTo-Json -Compress) -Method Post -ContentType "application/json" 

谢谢

【问题讨论】:

  • PowerShell 3.0 不适用于 Windows Server 2003。

标签: powershell windows-server-2003


【解决方案1】:

您可以在 powershell v2 中使用 System.Net.Webrequest .NET 类。

从我的一个 powershell 答案中查看此示例: Powershell - View Website Source Information

对此的回答也显示了如何设置 json 内容类型,尽管是在 C# 中 How to get json response using system.net.webrequest in c#?

【讨论】:

  • 你能告诉我我的陈述使用这个会是什么样子吗? Invoke-WebRequest 需要 -Body、-ContentType 和 -Method 等属性
  • 如果您检查 System.Net.Webrequest 的 msdn 参考,您会看到它具有您需要的属性:msdn.microsoft.com/en-us/library/…
【解决方案2】:
$Web = New-Object System.Net.WebClient
$Web.OpenRead($url)
$PageContents = New-Object System.IO.StreamReader($Web)
$PageContents.ReadToEnd()

如果您希望提交 JSON 数据,您可以改用它:

$Encoding = [System.Text.Encoding]::GetEncoding("ASCII")
$postArray = $Encoding.GetBytes($json)
$Web = [System.Net.WebRequest]::Create($url)
$Web.Method = "POST"
$Web.Timeout = 10000;
$Stream = $Web.GetRequestStream()
$Stream.Write($postArray, 0, $postArray.Length)
$Web.GetResponse()

https://msdn.microsoft.com/en-us/library/System.Net.WebClient_methods(v=vs.80).aspx

在stackoverflow上发现了另一个类似的问题:

PowerShell WebRequest POST

【讨论】:

  • 这不太行。显示“使用“2”个参数调用 OpenWrite”的异常
  • 你能告诉我我的陈述使用这个会是什么样子吗? Invoke-WebRequest 需要 -Body、-ContentType 和 -Method 等属性
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 2018-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多