gpt4 book ai didi

ruby :Net::HTTP.start 问题

转载 作者:可可西里 更新时间:2023-11-01 17:14:24 24 4
gpt4 key购买 nike

我有这段代码(大致):

parsed_url = URI.parse(url_string)
puts "before Net::HTTP.start block"
response = Net::HTTP.start(parsed_url.host, parsed_url.port) { |http|
puts "inside Net::HTTP.start block"
http.read_timeout = 10
http.get(parsed_url.path)
}

当我针对在浏览器中超时的 url 执行代码时,它永远不会进入 block 。任何其他情况它都可以完美运行。 start 方法上是否有一些我看不到的行为?我假设在 http.get(parsed_url.path) 语句之前根本不会打开连接,所以我很困惑为什么这段代码 more 不执行......

提前致谢...

最佳答案

Net:HTTP.start 调用 do_start 然后调用 connect (它们都是私有(private)方法):

http://apidock.com/ruby/Net/HTTP/connect

前三行是

D "opening connection to #{conn_address()}..."
s = timeout(@open_timeout) { TCPSocket.open(conn_address(), conn_port()) }
D "opened"

虽然我似乎找不到有关 timeout 方法的文档,但这可能是您的罪魁祸首。

关于 ruby :Net::HTTP.start 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6495219/

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