class Hbserver::Server
Public Class Methods
new(_port,_env)
click to toggle source
# File lib/hbserver/server.rb, line 6 def initialize _port,_env @port,@env = _port,_env end
Public Instance Methods
call(env)
click to toggle source
# File lib/hbserver/server.rb, line 9 def call env request = Rack::Request.new env response = Rack::Response.new _path_info = request.path_info #=> uri 路径 _params = request.params #=> 参数 _request_method = request.request_method #=> 请求方法 get post xhr 等 # _body = env.map{|k,v| "#{k} => #{v}" } .join("<br/>") # _body = {a: 123, b: 456}.to_json _body = { ip: request.ip, cookies: request.cookies, session: request.session, session_options: request.session_options, referer: request.referer, user_agent: request.user_agent, method: request.request_method, path: request.path, path_info: request.path_info, params: request.params, port: request.port, url: request.url, base_url: request.base_url, fullpath: request.fullpath, host: request.host, host_with_port: request.host_with_port, logger: request.logger, media_type: request.media_type, media_type_params: request.media_type_params, POST: request.POST, query_string: request.query_string, scheme: request.scheme, script_name: request.script_name, ssl: request.ssl?, trace: request.trace?, xhr: request.xhr?, client: request['client'] }.to_json if _path_info == "/baidu" response.redirect('http://baidu.com') else # response.body = [_body] response.write _body response.headers["Content-Length"] = _body.to_s.bytesize.to_s response.headers['Transfer-Encoding'] = 'chunked' # response.headers["Content-Type"] = "text/html" response.headers["Content-Type"] = "application/json" # response.headers["Content-Type"] = "text/plain" response.status = 200 end response.finish #[200,{},[_request_method]] end
start()
click to toggle source
# File lib/hbserver/server.rb, line 71 def start Rack::Handler::Thin.run self,:Port => @port end