<spanclass="c1"># net_timeout_1.rb</span><spanclass="nb">require</span><spanclass="s1">'net/http'</span><spanclass="c1"># create a new http connection object, the connection isn't made yet</span><spanclass="n">c</span><spanclass="o">=</span><spanclass="no">Net</span><spanclass="o">::</span><spanclass="no">HTTP</span><spanclass="p">.</span><spanclass="nf">new</span><spanclass="p">(</span><spanclass="s2">"www.example.com"</span><spanclass="p">)</span><spanclass="c1"># set the open timeout to 1ms</span><spanclass="c1"># i.e. if we can't open a connection within 1ms this will cause a</span><spanclass="c1"># Net::OpenTimeout error when the request is made</span><spanclass="n">c</span><spanclass="p">.</span><spanclass="nf">open_timeout</span><spanclass="o">=</span><spanclass="mf">0.001</span><spanclass="c1"># make a get request after opening a connection</span><spanclass="n">response</span><spanclass="o">=</span><spanclass="n">c</span><spanclass="p">.</span><spanclass="nf">request_get</span><spanclass="p">(</span><spanclass="s2">"/index.html"</span><spanclass="p">)</span><spanclass="c1"># print the response status code</span><spanclass="nb">puts</span><spanclass="s2">"RESPONSE STATUS CODE: </span><spanclass="si">#{</span><spanclass="n">response</span><spanclass="p">.</span><spanclass="nf">code</span><spanclass="si">}</span><spanclass="s2">"</span>
<spanclass="c1"># use an open_timeout of 100ms</span><spanclass="no">HTTParty</span><spanclass="p">.</span><spanclass="nf">get</span><spanclass="p">(</span><spanclass="s1">'http://www.example.com'</span><spanclass="p">,</span><spanclass="p">{</span><spanclass="ss">open_timeout: </span><spanclass="mf">0.1</span><spanclass="p">})</span><spanclass="c1"># use it in a custom client</span><spanclass="k">class</span><spanclass="nc">SaneHTTPClient</span><spanclass="kp">include</span><spanclass="no">HTTParty</span><spanclass="n">open_timeout</span><spanclass="mi">1</span><spanclass="k">end</span><spanclass="no">SaneHTTPClient</span><spanclass="p">.</span><spanclass="nf">get</span><spanclass="p">(</span><spanclass="s2">"www.example.com"</span><spanclass="p">)</span>