gpt4 book ai didi

ruby - 如何从 sinatra 中的流 block 内部停止?

转载 作者:数据小太阳 更新时间:2023-10-29 08:12:55 27 4
gpt4 key购买 nike

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

/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

最佳答案

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

关于ruby - 如何从 sinatra 中的流 block 内部停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15011586/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com