为什么Net:HTTP / HTTParty调用中断Watir-Webdriver script / Net :: ReadTimeout错误

我已经build立了一个Watir-Webdriver脚本,我想要报告给远程服务:

puts "Starting..." b = Watir::Browser.new :ie puts "Started browser" puts "Setting status as non-idle" request = Net::HTTP::Post.new() url = URI(HOME + '/update_status') request.body = JSON.generate({ scrapeId: SCRAPE_ID, status: 'working' }) # This step freezes processing Net::HTTP.start(url.host, url.port) {|http| http.request(request)} puts "This step never happens" 

同时,node.js / express watir正在ping有以下端点:

 app.post('/update_status', function(req, res) { redis.hset(req.body.scrapeId, 'status', req.body.status); if (req.body.status === 'finished') { redis.expire(req.body.scrapeId, SIX_HOURS); } res.send('response from post /update_status'); }); 

问题:为什么在命中/update_status时Net :: HTTP超时? 有趣的是,如果服务器返回404(端点不存在),Watir脚本正常继续。

Net::ReadTimeout显然是culrpit,但是为什么?

“假设是所有问题的母亲” – 解释一些非常聪明的家伙或加仑。

答案非常简单 – 我添加了一个node.js中间件,省略了next(); 在里面。 剧本没有错,事实certificate – 我看错了地方,没有一个testing。 哎呦。