Typhoeus :: Request.new (...) не работает, но Typhoeus :: Request.get (...) работает! - PullRequest
1 голос
/ 22 февраля 2011

Я использую Ruby on Rails 3. Я только что установил Typhoeus и пытаюсь сделать HTTP-запрос, подобный этому

  require 'typhoeus'

  ....
  request = Typhoeus::Request.new("http://google.com",
              :method        => :get,
              :params        => {
                :email       => "test@test.com",
                :password    => "test"
              }
            )

  resp = request.response

но у меня проблема: отладка resp всегда пуста, и это также происходит, если я не использую параметры (метод, параметры, ...).

Однако, если я использую следующий код, он будет работать:

   resp = Typhoeus::Request.get("http://google.com?email=test@test.com&password=test")

и я получу значения для resp.

В чем может быть проблема?


Что я использую

  • Mac OS с "Snow Leopard" v 1.1.6

  • MacPorts - из этого программного обеспечения уже установлена ​​версия 7.21.2 libcurl

  • RVM (менеджер версий Ruby)


P.S .: если вам нужна дополнительная информация, дайте мне знать.


В официальной документации есть некоторые (переписанные) предупреждения для пользователей Mac OS, связанные с установкой.

Клеммные выходы:

$ which ruby
/Users/<my_user_name>/.rvm/rubies/ruby-1.9.2-p136/bin/ruby

$ which curl
/opt/local/bin/curl

Ответы [ 2 ]

4 голосов
/ 07 октября 2012
Typhoeus::Request.get

и его друзья post, put, delete, head, patch - это всего лишь ярлыки, которые сразу же отправят запрос. Если вы создаете запрос вручную, вы должны запустить его потом:

request = Typhoeus::Request.new("www.example.com")
request.run
#=> <Typhoeus::Response ...>

Я не предлагаю использовать гидру для одного запроса, потому что это замедлит вас. Вот документация: http://rubydoc.info/github/typhoeus/typhoeus/Typhoeus/Request.

2 голосов
/ 22 февраля 2011

Вам нужно запустить запрос в Hydra:

request = Typhoeus::Request.new
hydra = Typhoeus::Hydra.new
hydra.queue(request)
hydra.run
request.response #=> "response"

Я исправил «Тайфой», чтобы он автоматически поставил в очередь ответ в Hydra, если он еще не был запущен.

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