как использовать net :: https в ruby - PullRequest
0 голосов
/ 03 августа 2010
require 'net/http'
require 'uri'
Net::HTTP.get_print URI.parse('http://www.example.com/index.html')

Когда я пытался запустить эту программу, я получаю сообщение об ошибке, как это почему ??

c:/ruby/lib/ruby/1.8/net/http.rb:560:in `initialize': getaddrinfo: no address associated with hostname. (SocketError)
    from c:/ruby/lib/ruby/1.8/net/http.rb:560:in `open'
    from c:/ruby/lib/ruby/1.8/net/http.rb:560:in `connect'
    from c:/ruby/lib/ruby/1.8/timeout.rb:48:in `timeout'
    from c:/ruby/lib/ruby/1.8/timeout.rb:76:in `timeout'
    from c:/ruby/lib/ruby/1.8/net/http.rb:560:in `connect'
    from c:/ruby/lib/ruby/1.8/net/http.rb:553:in `do_start'
    from c:/ruby/lib/ruby/1.8/net/http.rb:542:in `start'
    from c:/ruby/lib/ruby/1.8/net/http.rb:379:in `get_response'
    from c:/ruby/lib/ruby/1.8/net/http.rb:337:in `get_print'
    from ruby2.rb:3

Ответы [ 3 ]

0 голосов
/ 03 августа 2010

Нет, я получаю ответ.Вы были онлайн в то время?

0 голосов
/ 05 января 2011

Попробуйте триангулировать проблему. Вы можете получить доступ к сайтам из своего браузера, но не из своего кода:

  1. Из окна командной строки запустите: gem server, чтобы запустить хороший маленький веб-сервер.
  2. Откройте окно браузера для сервера gem, используя: http://localhost:8808. Вы должны увидеть красиво отформатированную страницу.
  3. Запустите ваш код, настроив URL так, чтобы он указывал на гем-сервер по указанному выше адресу. Вы должны увидеть результат, вероятно, его много.
  4. Если вы получите вывод, вы можете убить гем-сервер, используя <CNTRL>+C. В этот момент вы доказали, что Net :: HTTP работает локально, и все готово, за исключением того, что вы выяснили, что является внешним по отношению к вашей машине, что мешает вам увидеть «example.com».
  5. Если вы не получили никакого вывода, добавьте require 'open-uri' к вашему списку требований в вашем коде и замените строку HTTP :: Net на puts open('http://localhost:8808').read и попробуйте запустить код еще раз.
  6. Если в вашем сетевом стеке Ruby отсутствует прокрутка HTML-кода, значит,

На этом этапе вы будете знать достаточно, чтобы добавить больше деталей к исходному вопросу, отредактировав его.

Еще одна мысль приходит на ум: вы на Windows. Включена ли у вас сетевая защита, например, брандмауэр? Может быть, он блокирует Ruby от создания соединения, но позволяет вашему браузеру?

0 голосов
/ 03 августа 2010

код выглядит правильно и работает, как и ожидалось, на моем компьютере - вы уверены, что DNS правильно установлен на вашем компьютере?вам нужен прокси для совершения веб-звонков?Вы можете открыть URL в браузере?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...