2016-11-28 76 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