【问题标题】:curl query parameters getcurl查询参数获取
【发布时间】:2015-09-22 18:29:41
【问题描述】:

我收到此 CURL 命令的错误,而 Chrome DHC 应用程序同样适用。我在这里错过了什么

[root@host125]# curl -sk -X 'GET' -H 'X-Auth-Token: [REDACTED]' -H 'Content-type: application/json' https://10.1.1.132/rest/rm-central/v1/recovery-sets?query="volumeType EQ 'vvol'"
{"badRequest": {"message": "QueryFilter Error :: Given Query Filter syntax 'query=' is not valid ", "code": 400}}
[root@host125]#
[root@host125]#
[root@host125]#

【问题讨论】:

  • 在发送到服务器之前可能会删除 ' 或 "

标签: curl get


【解决方案1】:

您的网址似乎错误:

https://10.1.1.132/rest/rm-central/v1/recovery-sets?query="volumeType EQ 'vvol'"

尤其是query= 部分。

引号应该是这样的:

'https://10.1.1.132/rest/rm-central/v1/recovery-sets?query=foobar'

或用“双引号”

【讨论】:

    【解决方案2】:

    以下 CURL 语法解决了我的问题:

    # curl -k -G -X 'GET' -H 'X-Auth-Token: 5127af39b7584d8c8897a0cad55accdc' -H 'Content-type: application/json' https://10.1.1.132/rest/rm-central/v1/recovery-sets -d "query=\"volumeType%20EQ%20'vvol'\""
    

    【讨论】:

    • -G/--get 使用此选项时,将使用 -d/--data 或 --data-binary 指定的所有数据用于 HTTP GET 请求而不是 POST 请求否则会被使用。数据将附加到带有“?”的 URL分隔器。 linux.die.net/man/1/curl
    【解决方案3】:

    使用 curl 的 --data-urlencode 选项。

    var=volumeType EQ 'vvol'
    curl -sSLG "https://10.1.1.132/rest/rm-central/v1/recovery-sets" --data-urlencode "query=$var"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-16
      • 2016-11-24
      • 2017-02-01
      • 2020-06-26
      • 1970-01-01
      • 2018-05-29
      • 2014-12-26
      • 1970-01-01
      相关资源
      最近更新 更多