【问题标题】:net/http.rb:560:in `initialize': getaddrinfo: Name or service not known (SocketError)net/http.rb:560:in `initialize': getaddrinfo: Name or service not known (SocketError)
【发布时间】:2011-02-06 04:34:56
【问题描述】:
@@timestamp = nil

def generate_oauth_url
  @@timestamp = timestamp
  url = CONNECT_URL + REQUEST_TOKEN_PATH + "&oauth_callback=#{OAUTH_CALLBACK}&oauth_consumer_key=#{OAUTH_CONSUMER_KEY}&oauth_nonce=#{NONCE}    &oauth_signature_method=#{OAUTH_SIGNATURE_METHOD}&oauth_timestamp=#{@@timestamp}&oauth_version=#{OAUTH_VERSION}"
  puts url
  url             
end

def sign(url)
  Base64.encode64(HMAC::SHA1.digest((NONCE + url), OAUTH_CONSUMER_SECRET)).strip
end

def get_request_token
  url = generate_oauth_url
  signed_url = sign(url)          
  request = Net::HTTP.new((CONNECT_URL + REQUEST_TOKEN_PATH),80)
  puts request.inspect
  headers = { "Authorization" => "Authorization: OAuth oauth_nonce = #{NONCE}, oauth_callback = #{OAUTH_CALLBACK}, oauth_signature_meth    od = #{OAUTH_SIGNATURE_METHOD}, oauth_timestamp=#{@@timestamp}, oauth_consumer_key = #{OAUTH_CONSUMER_KEY}, oauth_signature = #{signed_url}, oauth_versio    n = #{OAUTH_VERSION}" }

  request.post(url, nil,headers)                  
end

def timestamp
  Time.now.to_i
end

我正在尝试做 oauth 所做的事情,试图了解如何使用授权标头。我也收到以下错误。我正在尝试连接到linkedin API。

/usr/lib/ruby/1.8/net/http.rb:560:in 'initialize': getaddrinfo: Name or service not known (SocketError)

如果有人能将我推向正确的方向,我将不胜感激。

【问题讨论】:

    标签: authorization oauth linkedin


    【解决方案1】:

    “名称或服务未知”是一个套接字级别的错误,通常指向无效的 IP 地址/DNS 主机名,或未注册的端口名称(例如 telnet the.host.name service,其中 service 不是已注册的服务名称。 )

    检查CONNECT_URL 是否包含有效的网址。

    编辑:我不是 Ruby 程序员,但我不介意打赌 Net::HTTP.new 需要主机名(例如 www.facebook.com)作为第一个参数,而不是完整的网址(例如 www.facebook.com/login.php?method=oauth)。

    【讨论】:

      【解决方案2】:

      当您没有 Internet 连接时,您也会收到此错误,因为 DNS 查找通常是使用主机名建立 TCP 连接时发生的第一件事。

      拔下网线试试:

      Socket.getaddrinfo("www.example.com", "http")
      # => SocketError: getaddrinfo: nodename nor servname provided, or not known
      

      【讨论】:

      • 当我尝试将 git 与 GitLab 一起使用时,我从服务器收到此错误。消息通过 ssh 在我的终端中输出。错误在 Twp 几天前就出现了,现在它消失了。也许我的 linode 主机遇到了 DNS 问题?
      • 这行得通,我打开了我的wifi 并打开了on,瞧,它完成了
      猜你喜欢
      • 1970-01-01
      • 2014-03-22
      • 2019-08-22
      • 2021-12-27
      • 1970-01-01
      • 2016-09-05
      • 2016-01-24
      • 1970-01-01
      • 2015-09-03
      相关资源
      最近更新 更多