2015-04-24 2 views
0

Что эквивалентно функции Invoke-WebRequest в PowerShell версии 2. Это то, что я пытаюсь сделать с моей функцией, поскольку я не могу выполнить обновление до PowerShell 4, потому что я работаю над Windows Server 2003 .Invoke-WebRequest для PowerShell Version 2

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

Спасибо

+1

PowerShell 3.0 не доступна для Windows Server 2003. –

ответ

1

вы можете использовать класс System.Net.Webrequest .NET в PowerShell v2 вместо этого.

Смотрите этот пример одного из моих Powershell ответов: Powershell - View Website Source Information

А также ответить на это показывает, как установить JSon тип контента, хотя и в C# How to get json response using system.net.webrequest in c#?

+0

Можете ли вы сказать мне, как именно мое заявление будет выглядеть с помощью этого? Invoke-WebRequest требует таких атрибутов, как -Body, -ContentType и -Method –

+0

Если вы проверите ссылку msdn для System.Net.Webrequest, вы увидите, что у нее есть необходимые вам свойства: https://msdn.microsoft.com/ en-us/library/system.net.webrequest% 28v = vs.110% 29.aspx –

3
$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

+0

Это не совсем работает. Исключение, в котором говорится: «Вызов OpenWrite с аргументами« 2 » –

+0

Вы правы, я обновил свой ответ. –

+0

Можете ли вы рассказать мне, как будет выглядеть мое заявление, используя это? Invoke-WebRequest требует таких атрибутов, как -Body, -ContentType и -Method –

Смежные вопросы