Appear problem when I try to debug http response with default Ruby lib Net::HTTP
Example. I have such piece of code
url = URI.parse("http://nibbler.silktide.com/") # any http resource
req = Net::HTTP.get_response(url) # the same situation with get method of the Net::HTTP module
p req
I set breakpoint on the second line and try to execute it in the Interactive console and got "Timeout: evaluation took longer than 10 seconds."
But when I set breakpoint on the third line (or press F8 to make Step Over) I got correct value in req => #<Net::HTTPOK 200 OK readbody=true>
Why such situation appear? In such way I can't debug response in my code. Could anybody help me?
Environment:
OS - Ubuntu 16.04 x64
RubyMine version - 2017.2.4
Ruby version - 2.4.2p198
ruby-debug-ide (0.6.1.beta10)
Thank you in advance
When you set up the break point in the second line the request has not been submitted yet. Set the break point in the third line and then open the "Evaluate Expression" window to run
req.code
req.body
...
Or set them up as in the watches frame
Edit to respond to comment: If you evaluate req you get nil because it the request hasn't been submitted. If you copy paste and try to execute the entire line then you get the timeout message. The debugger has a single thread analyzing the http requests this way. In any case to "debug the http request" as you ask you need to place the breakpoint after the request has been submitted.
I hope this helps.