我正在嘗試將 CURL 請求中的 URL 字串表述為:
curl -v --location --request GET "https://proxy-xxx.execute-api.ap-southeast-1.amazonaws.com/dev/proxy?path=\"https://target-xxx/api/v1/resource?q1=a&q2=b&q3=c\""
我將"https://target-xxx/api/v1/resource?q1=a&q2=b&q3=c\"作為查詢字串傳遞給雙引號中的路徑變數。
在 API 網關控制臺上測驗,path="https://target-xxx/api/v1/resource?q1=a&q2=b&q3=c"作業正常。
但是 CURL 遇到錯誤的請求 400,并且 aws api 網關沒有收到。我相信 URL 語法問題。
uj5u.com熱心網友回復:
URL 語法中的引號沒有什么特別的作用,并不意味著字串文字。第一個"不標記非轉義字串開始,第二個"不標記非轉義字串結束。您應該對字符進行 url 編碼&以避免拆分查詢引數。
curl -v --location --request GET https://httpbin.org/get?path="https://target-xxx/api/v1/resource?q1=a&q2=b&q3=c"
回復:
{
"args": {
"path": "https://target-xxx/api/v1/resource?q1=a&q2=b&q3=c"
},
"headers": {
"Accept": "*/*",
"Host": "httpbin.org",
"User-Agent": "curl/7.79.1",
"X-Amzn-Trace-Id": "Root=1-6215a80a-5e94b80531a2f4076f84342e"
},
"url": "https://httpbin.org/get?path=https://target-xxx/api/v1/resource?q1=a&q2=b&q3=c"
}
如果您希望path參考
curl -v --location --request GET https://httpbin.org/get?path=\"https://target-xxx/api/v1/resource?q1=a&q2=b&q3=c\"
回復:
{
"args": {
"path": "path": "\"https://target-xxx/api/v1/resource?q1=a&q2=b&q3=c\""
},
"headers": {
"Accept": "*/*",
"Host": "httpbin.org",
"User-Agent": "curl/7.79.1",
"X-Amzn-Trace-Id": "Root=1-6215a9c5-11a283486ad54eb96c499bc7"
},
"url": "https://httpbin.org/get?path=\"https://target-xxx/api/v1/resource?q1=a&q2=b&q3=c\""
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/436725.html
標籤:卷曲 aws-api-网关
