我正在研究执行一些基本网络管理的应用程序。由于超出了本应用程序范围的限制,因此需要将cidr块(例如127.0.0.1/32
)编码到url中。例如,端点路由可能看起来像这样的post "/home/network/:user/:cidr"
。在大多数情况下,可以很容易地将cidr作为字符串发送到有效负载中,但这在这里是不可行的。
我知道.
是有效的url字符,并且/
可以用%2F
进行编码。天真地将它们组合起来并尝试针对该端点进行发布,例如:/home/network/janedoe/127.0.0.1%2F32
404ed,这使我认为Sinatra无法正确解析该url参数。到目前为止,我还尝试使用URI
模块对cidr字符串进行编码,但运气不佳。
也许有一种更简单的方法来考虑将cidr块编码到url中,以便在端点中轻松提取。