Zhoran Tvalve wrote:> Bontina Chen wrote:
>> I''m testing the http module in console.
>> BUt I got the following error.
>> Anyone knows why?
>>
>>>> Net::HTTP.get_print ''www.google.com'',
''index.html''
>> SystemStackError: stack level too deep
>> from C:/InstantRails/ruby/lib/ruby/1.8/net/http.rb:451:in
>> `newobj''
>> from C:/InstantRails/ruby/lib/ruby/1.8/net/http.rb:451:in
>> `newobj''
>> from C:/InstantRails/ruby/lib/ruby/1.8/net\http.rb:451:in
`new''
>> from C:/InstantRails/ruby/lib/ruby/1.8/net\http.rb:374:in
>> `get_response''
>>
>> from C:/InstantRails/ruby/lib/ruby/1.8/net\http.rb:337:in
>> `get_print''
>> from (irb):2
>>
>> THX
>
> Hi, I''m also suffering from that issue. Please help!
> A copy-pasted an example of using ''http.rb''
>
> def open_url(_url)
> http = Net::HTTP.new(''http://www.yandex.ru'', nil,
''192.168.1.32'',
> 3128)
> http.start{
> case req.request_method
> when "GET" then response = http.get(path, header)
> when "POST" then response = http.post(path, req.body ||
"", header)
> when "HEAD" then response = http.head(path, header)
> else
> raise HTTPStatus::MethodNotAllowed,
> "unsupported method `#{req.request_method}''."
> end
> }
> end
>
> and constantly got an exception inside start. I tried several examples I
> found in doc, but wo change - I always got that exception message.
>
> ---------------------------------------------------------------------
> stack level too deep
>
> RAILS_ROOT: C:/INSTAN~1/rails_apps/myapp/config/..
>
> Application Trace | Framework Trace | Full Trace
> C:/INSTAN~1/ruby/lib/ruby/1.8/net/http.rb:451:in `newobj''
> C:/INSTAN~1/ruby/lib/ruby/1.8/net/http.rb:451:in `newobj''
> C:/INSTAN~1/ruby/lib/ruby/1.8/net/http.rb:451:in `new''
> C:/INSTAN~1/ruby/lib/ruby/1.8/net/http.rb:440:in `start''
> #{RAILS_ROOT}/lib/bot.rb:25:in `open_url''
> #{RAILS_ROOT}/app/controllers/urlas_controller.rb:42:in
`get_content''
> ---------------------------------------------------------------------
Here is that code from ''net/http.rb''. I suppose that recursion
is in
charge, but I could not find out what is wrong:
def HTTP.start(address, port = nil, p_addr = nil, p_port = nil, p_user
= nil, p_pass = nil, &block) # :yield: +http+
new(address, port, p_addr, p_port, p_user, p_pass).start(&block)
end
class << HTTP
alias newobj new
end
# Creates a new Net::HTTP object.
# If +proxy_addr+ is given, creates an Net::HTTP object with proxy
support.
# This method does not open the TCP connection.
def HTTP.new(address, port = nil, p_addr = nil, p_port = nil, p_user =
nil, p_pass = nil)
h = Proxy(p_addr, p_port, p_user, p_pass).newobj(address, port)
h.instance_eval {
@newimpl = ::Net::HTTP.version_1_2?
}
h
end
# Creates a new Net::HTTP object for the specified +address+.
# This method does not open the TCP connection.
def initialize(address, port = nil)
@address = address
@port = (port || HTTP.default_port)
@curr_http_version = HTTPVersion
@seems_1_0_server = false
@close_on_empty_response = false
@socket = nil
@started = false
@open_timeout = nil
@read_timeout = 60
@debug_output = nil
@use_ssl = false
@ssl_context = nil
end
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---