gpt4 book ai didi

ruby - Net::HTTP.get 出现奇怪的 Ruby 错误

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

我有以下 Ruby 代码:

require 'net/http'
require 'uri'

include Net

$DEBUG = 1

print "Enter a GitHub username: "
username = gets

puts "Username = #{username}" if $DEBUG == 1

source = HTTP.get(URI.parse("http://github.com/api/v2/xml/user/show/#{username}"))

puts source if $DEBUG == 1

每当我运行它时,我都会收到以下错误:

Exception `Errno::EAGAIN' at /usr/local/lib/ruby/1.9.1/net/protocol.rb:135 - Resource temporarily unavailable - read would block

尽管它工作正常。关于为什么会发生这种情况以及如何阻止它发生的任何想法?

提前致谢!

编辑:使用htty ,我能够连接到所需的服务器并获得资源,没有任何错误。

最佳答案

我的猜测是您对全局 $DEBUG 变量的使用揭示了 Net::Protocol 中的错误或不良状态。如果您设置 $DEBUG = false,它就会消失。

此时在 Net::Protocol 代码中,它正在尝试进行非阻塞读取,但似乎超时了。

Ruby 使用 $DEBUG 标志作为 -d 机制的一部分。如果您将 puts $DEBUG 放入脚本并运行它,您将看到该变量切换。因为它是全局的,所以它在任何需要调试的代码中都是可见的,因此您或代码的作者可以触发额外的特殊详细信息来帮助调试:

greg-mbp-wireless:Desktop greg$ ruby untitled.rb 
false
greg-mbp-wireless:Desktop greg$ ruby -d untitled.rb
true

关于ruby - Net::HTTP.get 出现奇怪的 Ruby 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4181099/

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