【问题标题】:Passing API key with HTTP header in cURL在 cURL 中使用 HTTP 标头传递 API 密钥
【发布时间】:2017-04-11 19:28:47
【问题描述】:

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

当我修改我的策略以在查询参数而不是标题中查找键时,它可以正常工作。我在这里遗漏了什么吗?

【问题讨论】:

    标签: powershell curl apigee


    【解决方案1】:

    试试这个:

    curl -v -H @{'apikey' = 'my_key'} http://api_org-test.apigee.net/v1/helloapikey
    

    注意: curlInvoke-WebRequest cmdlet 的别名:

    Get-Alias curl
    

    输出:

    CommandType     Name
    -----------     ----
    Alias           curl -> Invoke-WebRequest 
    

    【讨论】:

    • 对于多个表头,多个-H不起作用,需要使用-H @{'Cookies' = 'examplecookie=examplevalue'; 'Authorization: example'}
    【解决方案2】:

    你可以安装 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

    【讨论】:

    • 在我的情况下 curl 已经安装。只需要删除别名。
    【解决方案3】:

    以上答案都不适合我(我收到一个错误——parse error near })。

    这行得通:

    curl -X GET \
      'http://api_org-test.apigee.net/v1/helloapikey' \
      -H 'apikey: my_key'
    

    【讨论】:

    • @him299 如何在 curl 脚本中添加它。使用 PHP?
    【解决方案4】:

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

    $serverHost = "myHost"
    $service = "http://$serverHost`:1234/service"
    Invoke-WebRequest $service -Method Get
    

    【讨论】:

      【解决方案5】:

      只是为了将其添加到讨论中,我必须同时对 api 密钥进行哈希处理,但 保留 令牌调用关键短语而不是将其更改为“apikey”。这正是对我有用的方法!

      curl -v -H @{'X-API-TOKEN' = '[*insert key here*]'} '*datacenter_url*)'
      

      对于 PowerShell 新手来说同样值得注意的是,-v 代表详细。此开关在 PowerShell 中的命令下为您提供一个青色文本,说明 PS 正在运行的命令。几乎就像一个逐个播放的评论。足够有用,我想我会提到它。

      【讨论】:

        猜你喜欢
        • 2018-08-12
        • 2011-12-22
        • 1970-01-01
        • 2022-01-24
        • 2013-03-21
        • 2021-08-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多