3

我正在尝试使用流式传输块中的 HTTP 错误代码进行响应,但 Web 服务器引发异常。在这种情况下,正确的做法是什么?

/var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:803:in `throw':
uncaught throw :halt (ArgumentError)

我的代码:

require 'sinatra/base'
class App < Sinatra::Base
  get '/' do
    stream :keep_open do |out|
      error 401
    end
  end
  run! if app_file == $0
end
4

1 回答 1

0

根据我对 的理解#stream(),响应标头已经发送。虽然您可以继续流式传输数据(正文),甚至关闭连接,但我认为您无法在已发送标头后修改标头。我正在挖掘 Sinatra YARD 文档以进行验证,但我很确定这是您的问题。

于 2014-01-07T07:44:27.933 回答