【发布时间】:2016-06-01 07:06:15
【问题描述】:
我需要一些提示/帮助,如何将多行响应读入变量。 我当前的命令产生了多行响应,但之后我得到了超时。
这是我的连接设置方式:
connection = Net::Telnet.new('Host' => host,'Port' => 4800, 'Telnetmode' => false, 'Timeout' => 1)
这是我的请求以及我如何保存它:
puts "Weather request\n"
connection.cmd("{weather}"){ |c| print c }
parsed = JSON.parse(str)
puts "#{parsed}\n\n"
这是错误:
/usr/lib/ruby/1.9.1/net/telnet.rb:558:in `waitfor': timed out while waiting for more data (Timeout::Error)
from /usr/lib/ruby/1.9.1/net/telnet.rb:695:in `cmd'
from ruby_check.rb:37:in `<main>'
我的响应是多个 JSON 行,如下所示:
{"City":"Tallinn", "Degrees":"23"}
{"City":"Berlin", "Degrees":"23"}
{"City":"Helsinki", "Degrees":"23"}
{"City":"Stockholm", "Degrees":"23"}
【问题讨论】:
-
你期待什么结果?
-
我正在等待上面描述的结果,“我的响应是多个 JSON 行”并继续发送下一个命令而不会超时。目前我的脚本不会继续执行下一个命令。
-
分配
connection = Net::Telnet(... 'Promp'似乎被截断。也许你需要纠正它。 -
已更正。谢谢!