2016-11-28 77 views
4

我在Apigee中有一个API代理,它使用API​​密钥进行身份验证。我通过使用卷曲我的HTTP请求头中的关​​键,用这个命令:传递带有HTTP标头的API密钥cURL

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". 

当我修改我的政策,以寻找在查询参数的关键而不是头,它工作正常。我在这里错过了什么吗?

回答

7

试试这个:

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

PowerShell根本无法解析您的URL中的变量。您正在尝试在URI http:// $ serverHost:1234 /服务中查询服务,该服务不起作用。你可以做

$ SERVERHOST = “MYHOST” $服务= “HTTP:// $ serverHost`:1234 /服务” 调用-的WebRequest $服务 - 方法获取

0

你可以安装卷曲: https://stackoverflow.com/a/16216825/3013633

删除通过执行以下命令现有卷曲别名:

Remove-item alias:curl

,您的命令将工作:

curl -v -H "apikey: my_key" http://api_org-test.apigee.net/v1/helloapikey