【发布时间】:2010-08-18 20:05:54
【问题描述】:
有没有办法在 Ruby 中操作 URI 以在不使用 ? 和 & 的情况下接受参数?
例如,我希望执行以下操作:
http://localhost:5000/service/get/ip/port
而不是
http://localhost:5000/service?ip=192.168.1.1&port=1
返回给定设备的信息。这将利用完全基于 REST 的界面。
示例代码:
hello_proc = lambda do |req,res|
res['Content-Type'] = "text/html"
res.body = %{
<html><body>
Hello. You are calling from a #{req['User-Agent']}
<p>
I see parameters: #{req.query.keys.join(', ')}
</body></html>
}
end
使用此网址:http://localhost:5000/a/b 在上面,给定 URL 的 req 输出将是:
GET /a/b HTTP/1.1
在“req”中,如何处理 URI?
提前谢谢你。
【问题讨论】:
-
你是在使用 Rails、Rack 还是其他东西来处理 http 请求?
-
是的,WEBrick 来处理所有传入的 http 请求。