CURL GET 转义双引号

use*_*836 2 url curl get escaping

我正在尝试发送 GET 请求来检索 JSON 结果。

这对我来说非常有效:

curl -i -H "Accept: */*" -X GET 'http://10.50.227.58:30000/api/v1/query?query=sum(container_memory_working_set_bytes)by(container_name,pod_name)&start=1598860800&end=1598860859';echo
Run Code Online (Sandbox Code Playgroud)

但是,我需要的是下面的内容,无论我尝试过什么(例如,“,使用%22)等,它都失败了。”

curl -i -H "Accept: */*" -X GET 'http://10.50.227.58:30000/api/v1/query?query=sum(container_memory_working_set_bytes{container_name!="POD"})by(container_name,pod_name)&start=1598860800&end=1598860859';echo
Run Code Online (Sandbox Code Playgroud)

谁能帮我?

预先非常感谢。

use*_*068 5

您必须使用--data-urlencode对 URL 进行编码

curl -G -X GET \
       --data-urlencode 'query=sum(container_memory_working_set_bytes{container_name!="POD"})by(container_name,pod_name)' \
       --data-urlencode 'start=1598860800' \
       --data-urlencode 'end=1598860859' \
       http://10.50.227.58:30000/api/v1/query
Run Code Online (Sandbox Code Playgroud)