传递带有HTTP标头的API密钥cURL
问题描述:
我在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".
当我修改我的政策,以寻找在查询参数的关键而不是头,它工作正常。我在这里错过了什么吗?
答
试试这个:
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
答
PowerShell根本无法解析您的URL中的变量。您正在尝试在URI http:// $ serverHost:1234 /服务中查询服务,该服务不起作用。你可以做
$ SERVERHOST = “MYHOST” $服务= “HTTP:// $ serverHost`:1234 /服务” 调用-的WebRequest $服务 - 方法获取
答
你可以安装卷曲: https://stackoverflow.com/a/16216825/3013633
删除通过执行以下命令现有卷曲别名:
Remove-item alias:curl
,您的命令将工作:
curl -v -H "apikey: my_key" http://api_org-test.apigee.net/v1/helloapikey