使用带有编码URL的CURL进行删除

使用带有编码URL的CURL进行删除,url,curl,encoding,request,http-delete,Url,Curl,Encoding,Request,Http Delete,我尝试使用CURL发出请求,如下所示: curl -X DELETE "https://myhost/context/path/users/OXYugGKg207g5uN/07V" 其中,oxyugggk207g5un/07V是一个散列,所以我想我需要在执行此请求之前进行编码 我尝试了curl-X DELETE--data urlengond“https://myhost/context/path/users/OXYugGKg207g5uN/07V“ 一些想法?如果真的OxyUGGK207G

我尝试使用CURL发出请求,如下所示:

curl -X DELETE "https://myhost/context/path/users/OXYugGKg207g5uN/07V" 
其中,
oxyugggk207g5un/07V
是一个散列,所以我想我需要在执行此请求之前进行编码

我尝试了
curl-X DELETE--data urlengond“https://myhost/context/path/users/OXYugGKg207g5uN/07V“


一些想法?

如果真的
OxyUGGK207G5UN/07V
是散列,那么你需要对其进行编码,而不是整个url。可以在使用cURL的环境中使用可用的编码函数

因为您在bash环境中,所以可以在将哈希传递给curl之前对其进行编码

直接的方法是使用其字节表示法
%4f%58%59%75%67%47%4b%67%32%30%37%67%35%75%4e%2f%30%37%56

要获取该信息,请致电:

echo -ne "OXYugGKg207g5uN/07V" | xxd -plain | tr -d '\n' | sed 's/\(..\)/%\1/g'
它将为您提供:
%4f%58%59%75%67%47%4b%67%32%30%37%67%35%75%4e%2f%30%37%56

包括bash/zsh/sh/…中的curl在内的完整一行程序如下所示:

curl -X DELETE "https://myhost/context/path/users/OXYugGKg207g5uN/07V" 
curl-X DELETE”https://myhost/context/path/users/$(echo-ne“OXYugGKg207g5uN/07V”| xxd-平原| tr-d'\n'\sed's/\(..\)/%\1/g')”
相当于

curl-X DELETE”https://myhost/context/path/users/%4f%58%59%75%67%47%4b%67%32%30%37%67%35%75%4e%2f%30%37%56"
这个解决方案不是很漂亮,但它很有效。

我希望这对您有所帮助。

服务器是否接收请求?看起来您正在对整个URL进行URL编码。。。这将创建一个不可用的URL。您是否真的尝试了
--数据URL编码
?正确拼写可能会对您有所帮助。我使用bash脚本。你有什么例子吗?嗯,不确定我是否理解正确,你会犯什么样的错误
sed的/\(..\)/%\1/g')
$()
求值中,因此需要转义括号。在不转义它们的情况下,sed将在sh、bash和zsh中抛出此错误:
\1未在RE
中定义。注释已删除。我只使用了我需要的命令的一部分,而忽略了部分上下文。漠视