我有一个MyHandler,需要知道请求体中的内容:
class MyHandler
include HTTP::Handler
def call(context)
p "MyHandler got body: " + context.request.body.not_nil!.gets_to_end
call_next(context)
end
end
server = HTTP::Server.new(42, [MyHandler.new]) do |context|
p "Server got body: " + context.request.body.not_nil!.gets_to_end
end
正如预期的那样,MyHandler
读取后,服务器接收到一个空的请求体。如何在不修改原始上下文的情况下复制该请求体?
#reset
,你指的是#rewind
吗?不得不在IO.copy
之后再添加另一个body_io.rewind
才能使它正常工作。谢谢!附言:请为将来的用户更新你的答案 ;) - Vlad Faust