Подтвердить что ты не робот

Можно ли отправлять дополнительные HTTP-заголовки в веб-службы через New-WebServiceProxy

Веб-служба, с которой мне нужно взаимодействовать (часто вручную для тестирования), требует дополнительных HTTP-заголовков для определенных запросов. Быстрое ручное тестирование отлично работает с PowerShell New-WebServiceProxy, но до сих пор я не нашел возможности добавить в запрос еще один HTTP-заголовок.

Есть ли что-то для этого?

4b9b3361

Ответ 1

Invoke-WebRequest http://yourURLhere -Headers @{"accept"="application/json"}

Представлено в POSH 3.0

Ответ 2

Вы можете использовать веб-клиент .NET из PowerShell.

> $webClient = New-Object System.Net.WebClient
> $webClient.Headers.add('accept','application/json')
> $webClient.DownloadString('http://yourURLhere')

Ответ 3

Я удивлен, что это не подошло:

$uri = 'http://...'

$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add('Accept','Application/Json')
$headers.Add('X-My-Header','...')

$result = Invoke-WebRequest -Uri $uri -Headers $headers

Для полноты ссылки на свойство headers:

https://msdn.microsoft.com/en-us/library/s4ys34ea(v=vs.110).aspx

Ответ 4

Я на:
PS Версия: 5.1.17134.1

И выдал этот код:

$uri = "https://someuri"
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add('Range','bytes=0-1023')
$headers.Add('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36')
$result = Invoke-WebRequest -Uri $uri -Headers $headers -outfile "19" 

Получил эту ошибку:

Invoke-WebRequest: заголовок Range должен быть изменен с использованием соответствующего свойства или метода.
Имя параметра: имя
В строке: 7 символов: 11
+ $ result = Invoke-WebRequest -Uri $ uri -Headers $ headers -outfile "19...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [Invoke-WebRequest], ArgumentException
+ FullyQualifiedErrorId: System.ArgumentException, Microsoft.PowerShell.Commands.InvokeWebRequestCommand

Метод Брайана, похоже, не работает в этом случае.