我在Apigee中有一个API代理,它使用API密钥进行身份验证。我使用cURL使用我的HTTP请求标头传递密钥,使用以下命令:
curl -v -H "apikey: my_key" http://api_org-test.apigee.net/v1/helloapikey
我收到此错误:
Invoke-WebRequest : Cannot bind parameter 'Headers'. Cannot convert the
"apikey: my_key" value of type "System.String" to
type "System.Collections.IDictionary".
当我修改我的策略以查找查询参数而不是标题中的键时,它可以正常工作。我在这里错过了什么吗?
答案 0 :(得分:16)
试试这个:
curl -v -H @{'apikey' = 'my_key'} http://api_org-test.apigee.net/v1/helloapikey
注意:强>
curl
是Invoke-WebRequest
cmdlet的别名:
Get-Alias curl
<强>输出:强>
CommandType Name
----------- ----
Alias curl -> Invoke-WebRequest
答案 1 :(得分:4)
你可以安装curl: https://stackoverflow.com/a/16216825/3013633
执行此命令删除现有的curl别名:
Remove-item alias:curl
然后你的命令会起作用:
curl -v -H "apikey: my_key" http://api_org-test.apigee.net/v1/helloapikey
答案 2 :(得分:2)
以上答案均不适合我(我遇到了错误-parse error near }
)。
这有效:
curl -X GET \
'http://api_org-test.apigee.net/v1/helloapikey' \
-H 'apikey: my_key'
答案 3 :(得分:1)
PowerShell根本无法解析您网址中的变量。您正尝试在URI http:// $ serverHost:1234 / service查询服务,这将无法正常工作。你可以做到
$ serverHost =“myHost” $ service =“http:// $ serverHost`:1234 / service” Invoke-WebRequest $ service -Method Get
答案 4 :(得分:0)
输入你喜欢的uri
它将提供您期望的输出。 干杯
答案 5 :(得分:0)
只需将其添加到讨论中,我都必须对api键进行哈希处理,但是离开令牌调用键短语,而不是将其更改为“ apikey”。这就是对我有用的东西!
curl -v -H @{'X-API-TOKEN' = '[*insert key here*]'} '*datacenter_url*)'
对于PowerShell新手来说也很值得注意,-v表示冗长。此开关在PowerShell ise中有关命令PS正在运行的命令下为您提供青色的文本。几乎像逐条解说。足够有用,我以为我会提到它。