我有一個api服務器,它支持這個格式的urls
。api.add_resource(Component, '/mycustom-url/<string:text>' 。
methods=['GET'])
我需要支持用curl來使用它。
這個字串可能是阿拉伯文,所以我們需要在用 curl 發送之前進行 urlencode。我想直接通過curl命令來做。
在docs中,我可以看到使用-d與查詢字串
curl -d "name=curl" https://example.com
是否有辦法將其用于完整的urlencode或最后的引數部分?
例如:我希望能夠呼叫curl https://example.com/mycustom-url/????. 沒有url編碼,然后通過curl發送長編碼的
uj5u.com熱心網友回復:
假設你有以下的PHP腳本(名為:test.php):
<?php
echo "GET:";
var_dump($_GET)。
然后這樣:
curl -G --data-urlencode "name=€" http://localhost/test.php?name2=€
將產生:
GET:array(2) {
["name2"]=>
string(3) "€"
["name"]=>
string(9) "€"
}
- 你看到
name不是urldecoded,而name2是urldecoded。 - 字符
€代表urldecoded€的字符 。
結論:你仍然需要對字串進行URLEN編碼......
uj5u.com熱心網友回復:
我發現這個問題的解決方法是把阿拉伯字串放在""里面,并在url中添加空格
。eg.
curl https://example.com/mycustom-url/" ????"
這樣bash就會把這個字串解釋為url的一部分,并把這個字串連接到url中。它將以隱含的方式發送,并且api將成功接收它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/319766.html
標籤:
