73

我需要与之交互的 Web 服务(通常是手动测试)在某些请求上需要额外的 HTTP 标头。快速手动测试非常适合 PowerShell,New-WebServiceProxy但到目前为止,我还没有找到向请求添加另一个 HTTP 标头的选项。

有什么办法吗?

4

4 回答 4

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

在POSH 3.0中引入

于 2013-01-23T11:09:00.117 回答
22

您可以从 PowerShell 使用 .NET 的 Web 客户端。

> $webClient = New-Object System.Net.WebClient
> $webClient.Headers.add('accept','application/json')
> $webClient.DownloadString('http://yourURLhere')
于 2012-10-17T17:52:24.973 回答
13

我很惊讶这没有出现:

$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

于 2017-12-07T01:05:12.857 回答
0

一种更简单的方法来发送授权并在循环中执行获取或删除请求

$orders=@("522536","522539")

foreach ($order in $orders){
    iwr "https://api.taxjar.com/v2/transactions/orders/$order" `
      -Method 'DELETE'`
      -Headers @{ 'Authorization' ='Token token="34625gdsgd74rghdg4"'}
}
于 2019-11-25T13:47:08.527 回答