<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.2">Jekyll</generator><link href="https://rubygems.guide/feed.xml" rel="self" type="application/atom+xml" /><link href="https://rubygems.guide/" rel="alternate" type="text/html" /><updated>2023-10-17T08:21:03+00:00</updated><id>https://rubygems.guide/feed.xml</id><title type="html">RubyGems.Guide</title><subtitle>Tutorials for popular Ruby gems</subtitle><entry><title type="html">devise-two-factor</title><link href="https://rubygems.guide/devise-two-factor" rel="alternate" type="text/html" title="devise-two-factor" /><published>2023-10-17T08:21:03+00:00</published><updated>2023-10-17T08:21:03+00:00</updated><id>https://rubygems.guide/index</id><content type="html" xml:base="https://rubygems.guide/devise-two-factor"><![CDATA[<ul>
  
    
  
    
      <li>
        <a href="/devise-two-factor/how-to-implement-otp-two-factor-authentication-in-rails-6-1-with-devise-two-factor">How to implement OTP two-factor authentication in Rails 6.1 with devise-two-factor</a>
      </li>
    
  
</ul>]]></content><author><name>Hopper Gee</name></author><category term="devise-two-factor" /><summary type="html"><![CDATA[How to implement OTP two-factor authentication in Rails 6.1 with devise-two-factor]]></summary></entry><entry><title type="html">RubyGems.Guide | rest-man | Exception</title><link href="https://rubygems.guide/rest-man/exception" rel="alternate" type="text/html" title="RubyGems.Guide | rest-man | Exception" /><published>2023-10-17T08:21:03+00:00</published><updated>2023-10-17T08:21:03+00:00</updated><id>https://rubygems.guide/rest-man/exception</id><content type="html" xml:base="https://rubygems.guide/rest-man/exception"><![CDATA[<div class="post">
  <h2 class="title">Exception</h2>

  
    <div class="post-desc">
      <p>Exceptions (see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html)</p>

<ul>
  <li>for result codes between <code class="language-plaintext highlighter-rouge">200</code> and <code class="language-plaintext highlighter-rouge">207</code>, a <code class="language-plaintext highlighter-rouge">RestMan::Response</code> will be returned</li>
  <li>for result codes <code class="language-plaintext highlighter-rouge">301</code>, <code class="language-plaintext highlighter-rouge">302</code> or <code class="language-plaintext highlighter-rouge">307</code>, the redirection will be followed if the request is a <code class="language-plaintext highlighter-rouge">GET</code> or a <code class="language-plaintext highlighter-rouge">HEAD</code></li>
  <li>for result code <code class="language-plaintext highlighter-rouge">303</code>, the redirection will be followed and the request transformed into a <code class="language-plaintext highlighter-rouge">GET</code></li>
  <li>for other cases, a <code class="language-plaintext highlighter-rouge">RestMan::ExceptionWithResponse</code> holding the Response will be raised; a specific exception class will be thrown for known error codes</li>
  <li>call <code class="language-plaintext highlighter-rouge">.response</code> on the exception to get the server’s response</li>
</ul>

    </div>
  

  
    









<div class="example-section">
  
    <h3 class="example-title">Catch errors</h3>
  
  
    <div class="example-pre-desc"><p>Most exceptions are collected under <code class="language-plaintext highlighter-rouge">RestMan::RequestFaield</code>.</p>
</div>
  

  

  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">begin</span>
  <span class="no">RestMan</span><span class="p">.</span><span class="nf">get</span> <span class="s2">"http://example.com/test"</span>
<span class="k">rescue</span> <span class="o">=&gt;</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">RequestFailed</span> <span class="o">=&gt;</span> <span class="n">e</span>
  <span class="n">e</span><span class="p">.</span><span class="nf">response</span>    <span class="c1">#=&gt; RestMan::Response</span>
<span class="k">end</span>
</code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
    









<div class="example-section">
  
    <h3 class="example-title">Catch socket errors</h3>
  
  
    <div class="example-pre-desc"><p>RestMan will propagate up socket errors without modification:</p>
</div>
  

  

  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="no">RestMan</span><span class="p">.</span><span class="nf">get</span> <span class="s1">'http://example.com/test'</span>
<span class="c1">#=&gt; Exception: Errno::ECONNREFUSED: Connection refused - connect(2) for "localhost" port 12345</span>
</code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
    









<div class="example-section">
  
    <h3 class="example-title">Catch EOFError</h3>
  
  
    <div class="example-pre-desc"><p><code class="language-plaintext highlighter-rouge">RestMan::ServerBrokeConnection</code> is translated from <code class="language-plaintext highlighter-rouge">EOFError</code> to give a better error message.</p>
</div>
  

  

  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">begin</span>
  <span class="no">RestMan</span><span class="p">.</span><span class="nf">get</span> <span class="s1">'http://example.com/test'</span>
<span class="k">rescue</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">ServerBrokeConnection</span> <span class="o">=&gt;</span> <span class="n">error</span>
  <span class="n">error</span><span class="p">.</span><span class="nf">message</span>         <span class="c1">#=&gt; Server broke connection</span>
<span class="k">end</span>
</code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
    









<div class="example-section">
  
    <h3 class="example-title">Catch specific HTTP errors</h3>
  
  
    <div class="example-pre-desc"><p>It may be more straightforward to use exceptions to handle different HTTP error response cases.</p>
</div>
  

  

  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">begin</span>
  <span class="n">response</span> <span class="o">=</span> <span class="no">RestMan</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="s1">'http://example.com/resource'</span><span class="p">)</span>
<span class="k">rescue</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Unauthorized</span><span class="p">,</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Forbidden</span> <span class="o">=&gt;</span> <span class="n">error</span>
  <span class="nb">puts</span> <span class="s1">'Access denied'</span>
  <span class="k">return</span> <span class="n">error</span><span class="p">.</span><span class="nf">response</span>
<span class="k">rescue</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">ImATeapot</span> <span class="o">=&gt;</span><span class="n">error</span>
  <span class="nb">puts</span> <span class="s1">'The server is a teapot! # RFC 2324'</span>
  <span class="k">return</span> <span class="n">error</span><span class="p">.</span><span class="nf">response</span>
<span class="k">else</span>
  <span class="nb">puts</span> <span class="s1">'It worked!'</span>
  <span class="k">return</span> <span class="n">response</span>
<span class="k">end</span>
</code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
</div>]]></content><author><name>Hopper Gee</name></author><category term="rest-man" /><summary type="html"><![CDATA[Exception]]></summary></entry><entry><title type="html">RubyGems.Guide | rest-man | Proxy</title><link href="https://rubygems.guide/rest-man/proxy" rel="alternate" type="text/html" title="RubyGems.Guide | rest-man | Proxy" /><published>2023-10-17T08:21:03+00:00</published><updated>2023-10-17T08:21:03+00:00</updated><id>https://rubygems.guide/rest-man/proxy</id><content type="html" xml:base="https://rubygems.guide/rest-man/proxy"><![CDATA[<div class="post">
  <h2 class="title">Proxy</h2>

  
    









<div class="example-section">
  
    <h3 class="example-title">Set global proxy</h3>
  
  
    <div class="example-pre-desc"><p>All calls to RestMan, including Resources, will use the proxy specified by <code class="language-plaintext highlighter-rouge">RestMan.proxy</code>.</p>
</div>
  

  
    <div class="request-box">
      <div class="http-method">HEAD</div>
      <div class="request-target">/test</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Host: example.com">Host: example.com</div>
        
      </div>
      
    </div>

    <div class="request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
      
        <div class="request-proxy">proxy</div>
      
    </div>

    <div class="response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">200</div>
      <div class="status-text">OK</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
      </div>
      
        <div class="http-body">Hello world!</div>
      
    </div>
  

  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
            <div class="terminal-tab active" data-index="1" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              simple
            </div>
          
        
          
            <div class="terminal-tab " data-index="2" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              advance
            </div>
          
        
          
            <div class="terminal-tab " data-index="3" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              resource
            </div>
          
        
          
            <div class="terminal-tab " data-index="4" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              cli
            </div>
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan.proxy = "http://proxy.example.com"
RestMan.get "http://example.com/test"

response.code                 #=&gt;200
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="2" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="no">RestMan</span><span class="p">.</span><span class="nf">proxy</span> <span class="o">=</span> <span class="s2">"http://proxy.example.com"</span>
<span class="n">response</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
  <span class="ss">method: :get</span><span class="p">,</span>
  <span class="ss">url: </span><span class="s2">"http://example.com/test"</span>
<span class="p">)</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="3" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="no">RestMan</span><span class="p">.</span><span class="nf">proxy</span> <span class="o">=</span> <span class="s2">"http://proxy.example.com"</span>
<span class="n">resource</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Resource</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="s2">"http://example.com/test"</span><span class="p">)</span>
<span class="n">resposne</span> <span class="o">=</span> <span class="n">resource</span><span class="p">.</span><span class="nf">get</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="4" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan CLI hasn't support proxy customization.
</code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
    









<div class="example-section">
  
    <h3 class="example-title">Set per-request proxy</h3>
  
  
    <div class="example-pre-desc"><p>Specify a per-request proxy by passing the :proxy option to RestMan::Request. This will override any proxies set by environment variable
or by the global <code class="language-plaintext highlighter-rouge">RestMan.proxy</code> value.</p>
</div>
  

  
    <div class="request-box">
      <div class="http-method">HEAD</div>
      <div class="request-target">/test</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Host: example.com">Host: example.com</div>
        
      </div>
      
    </div>

    <div class="request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
      
        <div class="request-proxy">proxy</div>
      
    </div>

    <div class="response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">200</div>
      <div class="status-text">OK</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
      </div>
      
        <div class="http-body">Hello world!</div>
      
    </div>
  

  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
            <div class="terminal-tab active" data-index="1" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              simple
            </div>
          
        
          
            <div class="terminal-tab " data-index="2" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              advance
            </div>
          
        
          
            <div class="terminal-tab " data-index="3" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              resource
            </div>
          
        
          
            <div class="terminal-tab " data-index="4" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              cli
            </div>
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan simple mode hasn't support per-request proxy customization.
Please use advance mode.
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="2" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">response</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
  <span class="ss">method: :get</span><span class="p">,</span>
  <span class="ss">url: </span><span class="s2">"http://example.com/test"</span><span class="p">,</span>
  <span class="ss">proxy: </span><span class="s2">"http://proxy.example.com"</span>
<span class="p">)</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="3" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan Resource hasn't support per-request proxy customization.
Please use advance mode.
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="4" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan CLI hasn't support proxy customization.
</code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
    









<div class="example-section">
  
    <h3 class="example-title">Disable proxy for a particular request</h3>
  
  

  
    <div class="request-box">
      <div class="http-method">HEAD</div>
      <div class="request-target">/test</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Host: example.com">Host: example.com</div>
        
      </div>
      
    </div>

    <div class="request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
      
    </div>

    <div class="response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">200</div>
      <div class="status-text">OK</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
      </div>
      
        <div class="http-body">Hello world!</div>
      
    </div>
  

  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
            <div class="terminal-tab active" data-index="1" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              simple
            </div>
          
        
          
            <div class="terminal-tab " data-index="2" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              advance
            </div>
          
        
          
            <div class="terminal-tab " data-index="3" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              resource
            </div>
          
        
          
            <div class="terminal-tab " data-index="4" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              cli
            </div>
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan simple mode hasn't support per-request proxy customization.
Please use advance mode.
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="2" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="no">RestMan</span><span class="p">.</span><span class="nf">proxy</span> <span class="o">=</span> <span class="s2">"http://proxy.example.com"</span>
<span class="n">response</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
  <span class="ss">method: :get</span><span class="p">,</span>
  <span class="ss">url: </span><span class="s2">"http://example.com/test"</span><span class="p">,</span>
  <span class="ss">proxy: </span><span class="kp">nil</span>
<span class="p">)</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="3" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan Resource hasn't support per-request proxy customization.
Please use advance mode.
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="4" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan CLI hasn't support proxy customization.
</code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
</div>]]></content><author><name>Hopper Gee</name></author><category term="rest-man" /><summary type="html"><![CDATA[Proxy]]></summary></entry><entry><title type="html">RubyGems.Guide | rest-man | Logging</title><link href="https://rubygems.guide/rest-man/logging" rel="alternate" type="text/html" title="RubyGems.Guide | rest-man | Logging" /><published>2023-10-17T08:21:03+00:00</published><updated>2023-10-17T08:21:03+00:00</updated><id>https://rubygems.guide/rest-man/logging</id><content type="html" xml:base="https://rubygems.guide/rest-man/logging"><![CDATA[<div class="post">
  <h2 class="title">Logging</h2>

  
    <div class="post-desc">
      <p>To enable logging globally you can:</p>

<p>Set RestMan.log with a Ruby Logger</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="no">RestMan</span><span class="p">.</span><span class="nf">log</span> <span class="o">=</span> <span class="no">STDOUT</span>
</code></pre></div></div>

<p>Or set an environment variable to avoid modifying the code (in this case you can use a file name, “stdout” or “stderr”):</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ RESTCLIENT_LOG</span><span class="o">=</span>stdout path/to/my/program
</code></pre></div></div>

<p>You can also set individual loggers when instantiating a Resource or making an
individual request:</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">resource</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Resource</span><span class="p">.</span><span class="nf">new</span> <span class="s1">'http://example.com/resource'</span><span class="p">,</span> <span class="ss">log: </span><span class="no">Logger</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="no">STDOUT</span><span class="p">)</span>

<span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span><span class="ss">method: :get</span><span class="p">,</span> <span class="ss">url: </span><span class="s1">'http://example.com/foo'</span><span class="p">,</span> <span class="ss">log: </span><span class="no">Logger</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="no">STDERR</span><span class="p">))</span>
</code></pre></div></div>

<p>All options produce logs like this:</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="no">RestMan</span><span class="p">.</span><span class="nf">get</span> <span class="s2">"http://some/resource"</span>
<span class="c1"># =&gt; 200 OK | text/html 250 bytes</span>
<span class="no">RestMan</span><span class="p">.</span><span class="nf">put</span> <span class="s2">"http://some/resource"</span><span class="p">,</span> <span class="s2">"payload"</span>
<span class="c1"># =&gt; 401 Unauthorized | application/xml 340 bytes</span>
</code></pre></div></div>

<p>Note that these logs are valid Ruby, so you can paste them into the <code class="language-plaintext highlighter-rouge">restman</code>
shell or a script to replay your sequence of rest calls.</p>

    </div>
  

  
</div>]]></content><author><name>Hopper Gee</name></author><category term="rest-man" /><summary type="html"><![CDATA[Logging]]></summary></entry><entry><title type="html">RubyGems.Guide | rest-man | Retry</title><link href="https://rubygems.guide/rest-man/retry" rel="alternate" type="text/html" title="RubyGems.Guide | rest-man | Retry" /><published>2023-10-17T08:21:03+00:00</published><updated>2023-10-17T08:21:03+00:00</updated><id>https://rubygems.guide/rest-man/retry</id><content type="html" xml:base="https://rubygems.guide/rest-man/retry"><![CDATA[<div class="post">
  <h2 class="title">Retry</h2>

  
    









<div class="example-section">
  
    <h3 class="example-title">Manually set max retries</h3>
  
  
    <div class="example-pre-desc"><p>The default <code class="language-plaintext highlighter-rouge">max_retries</code> is 1. You can change it to any number you like.</p>
</div>
  

  
    <div class="request-box">
      <div class="http-method">HEAD</div>
      <div class="request-target">/test</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Host: example.com">Host: example.com</div>
        
      </div>
      
    </div>

    <div class="request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
      
    </div>

    <div class="response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">200</div>
      <div class="status-text">OK</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
      </div>
      
        <div class="http-body">Hello world!</div>
      
    </div>
  

  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
            <div class="terminal-tab active" data-index="1" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              simple
            </div>
          
        
          
            <div class="terminal-tab " data-index="2" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              advance
            </div>
          
        
          
            <div class="terminal-tab " data-index="3" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              resource
            </div>
          
        
          
            <div class="terminal-tab " data-index="4" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              cli
            </div>
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan simple mode hasn't support retry customization.
Please use advance or resource mode.
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="2" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">response</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
  <span class="ss">method: :get</span><span class="p">,</span>
  <span class="ss">url: </span><span class="s2">"http://example.com/test"</span><span class="p">,</span>
  <span class="ss">max_retries: </span><span class="mi">0</span>
<span class="p">)</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Hello world! </span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="3" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">resource</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Resource</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
  <span class="s2">"http://example.com/test"</span><span class="p">,</span>
  <span class="ss">max_retries: </span><span class="mi">0</span>
<span class="p">)</span>
<span class="n">resposne</span> <span class="o">=</span> <span class="n">resource</span><span class="p">.</span><span class="nf">get</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Hello world! </span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="4" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan CLI hasn't support SSL/TLS customization.
</code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
</div>]]></content><author><name>Hopper Gee</name></author><category term="rest-man" /><summary type="html"><![CDATA[Retry]]></summary></entry><entry><title type="html">RubyGems.Guide | rest-man | Redirection</title><link href="https://rubygems.guide/rest-man/redirection" rel="alternate" type="text/html" title="RubyGems.Guide | rest-man | Redirection" /><published>2023-10-17T08:21:03+00:00</published><updated>2023-10-17T08:21:03+00:00</updated><id>https://rubygems.guide/rest-man/redirection</id><content type="html" xml:base="https://rubygems.guide/rest-man/redirection"><![CDATA[<div class="post">
  <h2 class="title">Redirection</h2>

  <div class="post-desc">
    <p>By default, rest-man will follow:</p>
<ul>
  <li>HTTP 301, 302, 307 redirection requests for GET and HEAD only</li>
  <li>HTTP 303 redirection requests</li>
</ul>

<p><code class="language-plaintext highlighter-rouge">RestMan::Response</code> exposes a <code class="language-plaintext highlighter-rouge">#history</code> method that returns
a list of each response received in a redirection chain.</p>

  </div>

  
    









<div class="example-section">
  
    <h3 class="example-title">Get responses in the redirection chain</h3>
  
  
    <div class="example-pre-desc"><p>All calls to RestMan, including Resources, will use the proxy specified by <code class="language-plaintext highlighter-rouge">RestMan.proxy</code>.</p>
</div>
  

  
    <div class="request-box">
      <div class="http-method">GET</div>
      <div class="request-target">/test</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Host: example.com">Host: example.com</div>
        
      </div>
      
    </div>

    <div class="request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
      
    </div>

    <div class="response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">301</div>
      <div class="status-text">Moved Permanently</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
          <div class="http-header" title="Location: http://www.example.com/test">Location: http://www.example.com/test</div>
        
      </div>
      
        <div class="http-body">The document has moved to http://www.example.com/test</div>
      
    </div>
  

  
    <div class="redirection-request-box">
      <div class="http-method">GET</div>
      <div class="request-target">/test</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Host: www.example.com">Host: www.example.com</div>
        
      </div>
      
    </div>

    <div class="redirection-request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
      
    </div>

    <div class="redirection-response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">200</div>
      <div class="status-text">OK</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
      </div>
      
        <div class="http-body">Hello world!</div>
      
    </div>
  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
            <div class="terminal-tab active" data-index="1" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              simple
            </div>
          
        
          
            <div class="terminal-tab " data-index="2" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              advance
            </div>
          
        
          
            <div class="terminal-tab " data-index="3" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              resource
            </div>
          
        
          
            <div class="terminal-tab " data-index="4" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              cli
            </div>
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan.get "http://example.com/test"

response.code                 #=&gt; 200
response.request.url          #=&gt; http://www.example.com/test

response.history              #=&gt; Arry of RestMan::Response
response.history[0].code      #=&gt; 301
response.history[0].url       #=&gt; http://example.com/test
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="2" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">response</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
  <span class="ss">method: :get</span><span class="p">,</span>
  <span class="ss">url: </span><span class="s2">"http://example.com/test"</span>
<span class="p">)</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt; 200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">request</span><span class="p">.</span><span class="nf">url</span>          <span class="c1">#=&gt; http://www.example.com/test</span>

<span class="n">response</span><span class="p">.</span><span class="nf">history</span>              <span class="c1">#=&gt; Arry of RestMan::Response</span>
<span class="n">response</span><span class="p">.</span><span class="nf">history</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nf">code</span>      <span class="c1">#=&gt; 301</span>
<span class="n">response</span><span class="p">.</span><span class="nf">history</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nf">url</span>       <span class="c1">#=&gt; http://example.com/test</span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="3" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">resource</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Resource</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="s2">"http://example.com/test"</span><span class="p">)</span>
<span class="n">resposne</span> <span class="o">=</span> <span class="n">resource</span><span class="p">.</span><span class="nf">get</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt; 200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">request</span><span class="p">.</span><span class="nf">url</span>          <span class="c1">#=&gt; http://www.example.com/test</span>

<span class="n">response</span><span class="p">.</span><span class="nf">history</span>              <span class="c1">#=&gt; Arry of RestMan::Response</span>
<span class="n">response</span><span class="p">.</span><span class="nf">history</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nf">code</span>      <span class="c1">#=&gt; 301</span>
<span class="n">response</span><span class="p">.</span><span class="nf">history</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nf">url</span>       <span class="c1">#=&gt; http://example.com/test</span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="4" data-terminal-target="body">
          <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>restman get http://example.com/test

Hello world!

RestMan CLI hasn<span class="s1">'t support a way to check the history
</span></code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
    









<div class="example-section">
  
    <h3 class="example-title">Disable auto redirection</h3>
  
  
    <div class="example-pre-desc"><p>To disable automatic redirection, set <code class="language-plaintext highlighter-rouge">:max_redirects =&gt; 0</code>.</p>
</div>
  

  
    <div class="request-box">
      <div class="http-method">GET</div>
      <div class="request-target">/test</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Host: example.com">Host: example.com</div>
        
      </div>
      
    </div>

    <div class="request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
      
    </div>

    <div class="response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">301</div>
      <div class="status-text">Moved Permanently</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
          <div class="http-header" title="Location: http://www.example.com/test">Location: http://www.example.com/test</div>
        
      </div>
      
        <div class="http-body">The document has moved to http://www.example.com/test</div>
      
    </div>
  

  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
            <div class="terminal-tab active" data-index="1" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              simple
            </div>
          
        
          
            <div class="terminal-tab " data-index="2" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              advance
            </div>
          
        
          
            <div class="terminal-tab " data-index="3" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              resource
            </div>
          
        
          
            <div class="terminal-tab " data-index="4" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              cli
            </div>
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan simple mode hasn't support disable auto redirection.
Please use advance mode.
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="2" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">begin</span>
  <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
    <span class="ss">method: :get</span><span class="p">,</span>
    <span class="ss">url: </span><span class="s2">"http://example.com/test"</span><span class="p">,</span>
    <span class="ss">max_redirects: </span><span class="mi">0</span>
  <span class="p">)</span>
<span class="k">rescue</span> <span class="o">=&gt;</span> <span class="n">error</span>
  <span class="n">error</span>                             <span class="c1">#=&gt; 301 Moved Permanently</span>
  <span class="n">error</span><span class="p">.</span><span class="nf">response</span><span class="p">.</span><span class="nf">code</span>               <span class="c1">#=&gt; 301</span>
  <span class="n">error</span><span class="p">.</span><span class="nf">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:location</span><span class="p">]</span> <span class="c1">#=&gt; http://www.example.com/test</span>
  <span class="n">error</span><span class="p">.</span><span class="nf">response</span><span class="p">.</span><span class="nf">body</span>               <span class="c1">#=&gt; The document has moved to http://www.example.com/test</span>
<span class="k">end</span> 
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="3" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan Resource hasn't support disable auto redirection.
Please use advance mode.
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="4" data-terminal-target="body">
          <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan CLI hasn<span class="s1">'t support disable auto redirection.
</span></code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
    









<div class="example-section">
  
    <h3 class="example-title">Manually follow redirection</h3>
  
  
    <div class="example-pre-desc"><p>To manually follow redirection, you can call <code class="language-plaintext highlighter-rouge">Response#follow_redirection</code>. Or
you could of course inspect the result and choose custom behavior.</p>
</div>
  

  
    <div class="request-box">
      <div class="http-method">GET</div>
      <div class="request-target">/test</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Host: example.com">Host: example.com</div>
        
      </div>
      
    </div>

    <div class="request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
      
    </div>

    <div class="response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">301</div>
      <div class="status-text">Moved Permanently</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
          <div class="http-header" title="Location: http://www.example.com/test">Location: http://www.example.com/test</div>
        
      </div>
      
        <div class="http-body">The document has moved to http://www.example.com/test</div>
      
    </div>
  

  
    <div class="redirection-request-box">
      <div class="http-method">GET</div>
      <div class="request-target">/test</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Host: www.example.com">Host: www.example.com</div>
        
      </div>
      
    </div>

    <div class="redirection-request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
      
    </div>

    <div class="redirection-response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">200</div>
      <div class="status-text">OK</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
      </div>
      
        <div class="http-body">Hello world!</div>
      
    </div>
  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
            <div class="terminal-tab active" data-index="1" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              simple
            </div>
          
        
          
            <div class="terminal-tab " data-index="2" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              advance
            </div>
          
        
          
            <div class="terminal-tab " data-index="3" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              resource
            </div>
          
        
          
            <div class="terminal-tab " data-index="4" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              cli
            </div>
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan simple mode hasn't support disable auto redirection and manual follow redirection.
Please use advance mode.
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="2" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">begin</span>
  <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
    <span class="ss">method: :get</span><span class="p">,</span>
    <span class="ss">url: </span><span class="s2">"http://example.com/test"</span><span class="p">,</span>
    <span class="ss">max_redirects: </span><span class="mi">0</span>
  <span class="p">)</span>
<span class="k">rescue</span> <span class="o">=&gt;</span> <span class="n">error</span>
  <span class="n">error</span><span class="p">.</span><span class="nf">response</span><span class="p">.</span><span class="nf">code</span>               <span class="c1">#=&gt; 301</span>
  <span class="n">error</span><span class="p">.</span><span class="nf">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:location</span><span class="p">]</span> <span class="c1">#=&gt; http://www.example.com/test</span>

  <span class="n">response</span> <span class="o">=</span> <span class="n">error</span><span class="p">.</span><span class="nf">response</span><span class="p">.</span><span class="nf">follow_redirection</span>
  <span class="n">response</span><span class="p">.</span><span class="nf">code</span>                     <span class="c1">#=&gt; 200</span>
  <span class="n">response</span><span class="p">.</span><span class="nf">request</span><span class="p">.</span><span class="nf">url</span>              <span class="c1">#=&gt; http://www.example.com/test</span>
<span class="k">end</span> 
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="3" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan Resource hasn't support disable auto redirection and manual follow redirection.
Please use advance mode.
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="4" data-terminal-target="body">
          <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan CLI hasn<span class="s1">'t support manual follow redirectino.
</span></code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
    









<div class="example-section">
  
    <h3 class="example-title">Follow redirection for POST request</h3>
  
  
    <div class="example-pre-desc"><p>Follow redirections for all request types and not only for get and head</p>

<p>RFC : If the 301, 302 or 307 status code is received in response to a request other than GET or HEAD,
      the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user,
      since this might change the conditions under which the request was issued.</p>
</div>
  

  
    <div class="request-box">
      <div class="http-method">POST</div>
      <div class="request-target">/resource</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="Host: example.com">Host: example.com</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
          <div class="http-header" title="Content-Length: 14">Content-Length: 14</div>
        
      </div>
      
        <div class="http-body">Hello, world!</div>
      
    </div>

    <div class="request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
      
    </div>

    <div class="response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">301</div>
      <div class="status-text">Moved Permanently</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
          <div class="http-header" title="Location: http://www.example.com/resource">Location: http://www.example.com/resource</div>
        
      </div>
      
        <div class="http-body">The document has moved to http://www.example.com/resource</div>
      
    </div>
  

  
    <div class="redirection-request-box">
      <div class="http-method">POST</div>
      <div class="request-target">/resource</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="Host: www.example.com">Host: www.example.com</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
          <div class="http-header" title="Content-Length: 14">Content-Length: 14</div>
        
      </div>
      
        <div class="http-body">Hello, world!</div>
      
    </div>

    <div class="redirection-request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
      
    </div>

    <div class="redirection-response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">200</div>
      <div class="status-text">OK</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
      </div>
      
        <div class="http-body">Text received.</div>
      
    </div>
  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
            <div class="terminal-tab active" data-index="1" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              simple
            </div>
          
        
          
            <div class="terminal-tab " data-index="2" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              advance
            </div>
          
        
          
            <div class="terminal-tab " data-index="3" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              resource
            </div>
          
        
          
            <div class="terminal-tab " data-index="4" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              cli
            </div>
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># block style</span>
<span class="no">RestMan</span><span class="p">.</span><span class="nf">post</span><span class="p">(</span><span class="s2">"http://example.com/resource"</span><span class="p">,</span> <span class="s2">"Hello, world!"</span><span class="p">,</span> <span class="p">{</span> <span class="ss">content_type: </span><span class="s2">"text/plain"</span> <span class="p">})</span> <span class="k">do</span> <span class="o">|</span><span class="n">response</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">result</span><span class="o">|</span>
  <span class="k">case</span> <span class="n">response</span><span class="p">.</span><span class="nf">code</span>
  <span class="k">when</span> <span class="mi">301</span><span class="p">,</span> <span class="mi">302</span><span class="p">,</span> <span class="mi">307</span>
    <span class="n">response</span><span class="p">.</span><span class="nf">follow_redirection</span>
  <span class="k">else</span>
    <span class="n">response</span><span class="p">.</span><span class="nf">return!</span>
  <span class="k">end</span>
<span class="k">end</span>

<span class="c1"># exception style by explicit classes</span>
<span class="k">begin</span>
  <span class="no">RestMan</span><span class="p">.</span><span class="nf">post</span><span class="p">(</span><span class="s2">"http://example.com/resource"</span><span class="p">,</span> <span class="s2">"Hello, world!"</span><span class="p">,</span> <span class="p">{</span> <span class="ss">content_type: </span><span class="s2">"text/plain"</span> <span class="p">})</span> 
<span class="k">rescue</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">MovedPermanently</span><span class="p">,</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Found</span><span class="p">,</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">TemporaryRedirect</span> <span class="o">=&gt;</span> <span class="n">error</span>
  <span class="n">error</span><span class="p">.</span><span class="nf">response</span><span class="p">.</span><span class="nf">follow_redirection</span>
<span class="k">end</span>

<span class="c1"># exception style by response code</span>
<span class="k">begin</span>
  <span class="no">RestMan</span><span class="p">.</span><span class="nf">post</span><span class="p">(</span><span class="s2">"http://example.com/resource"</span><span class="p">,</span> <span class="s2">"Hello, world!"</span><span class="p">,</span> <span class="p">{</span> <span class="ss">content_type: </span><span class="s2">"text/plain"</span> <span class="p">})</span> 
<span class="k">rescue</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">ExceptionWithResponse</span> <span class="o">=&gt;</span> <span class="n">error</span>
  <span class="k">case</span> <span class="n">error</span><span class="p">.</span><span class="nf">http_code</span>
  <span class="k">when</span> <span class="mi">301</span><span class="p">,</span> <span class="mi">302</span><span class="p">,</span> <span class="mi">307</span>
    <span class="n">error</span><span class="p">.</span><span class="nf">response</span><span class="p">.</span><span class="nf">follow_redirection</span>
  <span class="k">else</span>
    <span class="k">raise</span>
  <span class="k">end</span>
<span class="k">end</span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="2" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># block style</span>
<span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
  <span class="ss">method: :post</span><span class="p">,</span>
  <span class="ss">url: </span><span class="s2">"http://example.com/resource"</span><span class="p">,</span>
  <span class="ss">payload: </span><span class="s2">"Hello, world!"</span><span class="p">,</span>
  <span class="ss">headers: </span><span class="p">{</span> <span class="ss">content_type: </span><span class="s2">"text/plain"</span> <span class="p">}</span>
<span class="p">)</span> <span class="k">do</span> <span class="o">|</span><span class="n">response</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">result</span><span class="o">|</span>
  <span class="k">case</span> <span class="n">response</span><span class="p">.</span><span class="nf">code</span>
  <span class="k">when</span> <span class="mi">301</span><span class="p">,</span> <span class="mi">302</span><span class="p">,</span> <span class="mi">307</span>
    <span class="n">response</span><span class="p">.</span><span class="nf">follow_redirection</span>
  <span class="k">else</span>
    <span class="n">response</span><span class="p">.</span><span class="nf">return!</span>
  <span class="k">end</span>
<span class="k">end</span>

<span class="c1"># exception style by explicit classes</span>
<span class="k">begin</span>
  <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
    <span class="ss">method: :post</span><span class="p">,</span>
    <span class="ss">url: </span><span class="s2">"http://example.com/resource"</span><span class="p">,</span>
    <span class="ss">payload: </span><span class="s2">"Hello, world!"</span><span class="p">,</span>
    <span class="ss">headers: </span><span class="p">{</span> <span class="ss">content_type: </span><span class="s2">"text/plain"</span> <span class="p">}</span>
  <span class="p">)</span>
<span class="k">rescue</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">MovedPermanently</span><span class="p">,</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Found</span><span class="p">,</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">TemporaryRedirect</span> <span class="o">=&gt;</span> <span class="n">error</span>
  <span class="n">error</span><span class="p">.</span><span class="nf">response</span><span class="p">.</span><span class="nf">follow_redirection</span>
<span class="k">end</span>

<span class="c1"># exception style by response code</span>
<span class="k">begin</span>
  <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
    <span class="ss">method: :post</span><span class="p">,</span>
    <span class="ss">url: </span><span class="s2">"http://example.com/resource"</span><span class="p">,</span>
    <span class="ss">payload: </span><span class="s2">"Hello, world!"</span><span class="p">,</span>
    <span class="ss">headers: </span><span class="p">{</span> <span class="ss">content_type: </span><span class="s2">"text/plain"</span> <span class="p">}</span>
  <span class="p">)</span>
<span class="k">rescue</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">ExceptionWithResponse</span> <span class="o">=&gt;</span> <span class="n">error</span>
  <span class="k">case</span> <span class="n">error</span><span class="p">.</span><span class="nf">http_code</span>
  <span class="k">when</span> <span class="mi">301</span><span class="p">,</span> <span class="mi">302</span><span class="p">,</span> <span class="mi">307</span>
    <span class="n">error</span><span class="p">.</span><span class="nf">response</span><span class="p">.</span><span class="nf">follow_redirection</span>
  <span class="k">else</span>
    <span class="k">raise</span>
  <span class="k">end</span>
<span class="k">end</span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="3" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">resource</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Resource</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="s2">"http://example.com/resource"</span><span class="p">)</span>

<span class="c1"># block style</span>
<span class="n">resource</span><span class="p">.</span><span class="nf">post</span><span class="p">(</span><span class="s2">"Hello, world!"</span><span class="p">,</span> <span class="p">{</span><span class="ss">content_type: </span><span class="s2">"text/plain"</span><span class="p">})</span> <span class="k">do</span> <span class="o">|</span><span class="n">response</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">result</span><span class="o">|</span>
  <span class="k">case</span> <span class="n">response</span><span class="p">.</span><span class="nf">code</span>
  <span class="k">when</span> <span class="mi">301</span><span class="p">,</span> <span class="mi">302</span><span class="p">,</span> <span class="mi">307</span>
    <span class="n">response</span><span class="p">.</span><span class="nf">follow_redirection</span>
  <span class="k">else</span>
    <span class="n">response</span><span class="p">.</span><span class="nf">return!</span>
  <span class="k">end</span>
<span class="k">end</span>

<span class="c1"># exception style by explicit classes</span>
<span class="k">begin</span>
  <span class="n">resource</span><span class="p">.</span><span class="nf">post</span><span class="p">(</span><span class="s2">"Hello, world!"</span><span class="p">,</span> <span class="p">{</span><span class="ss">content_type: </span><span class="s2">"text/plain"</span><span class="p">})</span>
<span class="k">rescue</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">MovedPermanently</span><span class="p">,</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Found</span><span class="p">,</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">TemporaryRedirect</span> <span class="o">=&gt;</span> <span class="n">error</span>
  <span class="n">error</span><span class="p">.</span><span class="nf">response</span><span class="p">.</span><span class="nf">follow_redirection</span>
<span class="k">end</span>

<span class="c1"># exception style by response code</span>
<span class="k">begin</span>
  <span class="n">resource</span><span class="p">.</span><span class="nf">post</span><span class="p">(</span><span class="s2">"Hello, world!"</span><span class="p">,</span> <span class="p">{</span><span class="ss">content_type: </span><span class="s2">"text/plain"</span><span class="p">})</span>
<span class="k">rescue</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">ExceptionWithResponse</span> <span class="o">=&gt;</span> <span class="n">error</span>
  <span class="k">case</span> <span class="n">error</span><span class="p">.</span><span class="nf">http_code</span>
  <span class="k">when</span> <span class="mi">301</span><span class="p">,</span> <span class="mi">302</span><span class="p">,</span> <span class="mi">307</span>
    <span class="n">error</span><span class="p">.</span><span class="nf">response</span><span class="p">.</span><span class="nf">follow_redirection</span>
  <span class="k">else</span>
    <span class="k">raise</span>
  <span class="k">end</span>
<span class="k">end</span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="4" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RsetMan CLI doesn't offer a way to follow redirection. You have to doing it manually.
</code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
</div>]]></content><author><name>Hopper Gee</name></author><category term="rest-man" /><summary type="html"><![CDATA[Redirection]]></summary></entry><entry><title type="html">RubyGems.Guide | rest-man | SSL/TLS</title><link href="https://rubygems.guide/rest-man/ssl-tls" rel="alternate" type="text/html" title="RubyGems.Guide | rest-man | SSL/TLS" /><published>2023-10-17T08:21:03+00:00</published><updated>2023-10-17T08:21:03+00:00</updated><id>https://rubygems.guide/rest-man/ssl-tls</id><content type="html" xml:base="https://rubygems.guide/rest-man/ssl-tls"><![CDATA[<div class="post">
  <h2 class="title">SSL/TLS Support</h2>

  <div class="post-desc">
    <p>Various options are supported for configuring rest-man’s TLS settings. By
default, rest-man will verify certificates using the system’s CA store on
all platforms. This is intended to be similar to how browsers behave. You
can also customize it as you like.</p>

<ul>
  <li>Customize the certificate authorities by specify <code class="language-plaintext highlighter-rouge">:ssl_ca_file</code>, <code class="language-plaintext highlighter-rouge">:ssl_ca_path</code>, or <code class="language-plaintext highlighter-rouge">:ssl_cert_store</code>.</li>
  <li>Set client certificate for mutual authentication by specify <code class="language-plaintext highlighter-rouge">:ssl_client_cert</code> and <code class="language-plaintext highlighter-rouge">:ssl_client_key</code></li>
</ul>

<p>Self-signed certificates can be generated with the openssl command-line tool.</p>

  </div>

  
    









<div class="example-section">
  
    <h3 class="example-title">Customize certificate authorities</h3>
  
  

  
    <div class="request-box">
      <div class="http-method">HEAD</div>
      <div class="request-target">/test</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Host: example.com">Host: example.com</div>
        
      </div>
      
    </div>

    <div class="request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
        <div class="request-https">
          <img src="/images/posts/rest-man/https.svg" class="https-icon" />
          <img src="/images/posts/rest-man/lock.svg" class="https-lock-icon" />
        </div>
      
      
    </div>

    <div class="response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">200</div>
      <div class="status-text">OK</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
      </div>
      
        <div class="http-body">Hello world!</div>
      
    </div>
  

  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
            <div class="terminal-tab active" data-index="1" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              simple
            </div>
          
        
          
            <div class="terminal-tab " data-index="2" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              advance
            </div>
          
        
          
            <div class="terminal-tab " data-index="3" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              resource
            </div>
          
        
          
            <div class="terminal-tab " data-index="4" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              cli
            </div>
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan simple mode hasn't support SSL/TLS customization.
Please use advance or resource mode.
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="2" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># Customize ssl_ca_file</span>
<span class="n">response</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
  <span class="ss">method: :get</span><span class="p">,</span>
  <span class="ss">url: </span><span class="s2">"https://example.com/test"</span><span class="p">,</span>
  <span class="ss">ssl_ca_file: </span><span class="s2">"/path/to/ca_certs.pem"</span>
  <span class="ss">verify_ssl: </span><span class="no">OpenSSL</span><span class="o">::</span><span class="no">SSL</span><span class="o">::</span><span class="no">VERIFY_PEER</span>
<span class="p">)</span>

<span class="c1"># Customize ssl_ca_path</span>
<span class="n">response</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
  <span class="ss">method: :get</span><span class="p">,</span>
  <span class="ss">url: </span><span class="s2">"https://example.com/test"</span><span class="p">,</span>
  <span class="ss">ssl_ca_path: </span><span class="s2">"/path/to/certs"</span>
  <span class="ss">verify_ssl: </span><span class="no">OpenSSL</span><span class="o">::</span><span class="no">SSL</span><span class="o">::</span><span class="no">VERIFY_PEER</span>
<span class="p">)</span>

<span class="c1"># Customize ssl_cert_store</span>
<span class="n">store</span> <span class="o">=</span> <span class="no">OpenSSL</span><span class="o">::</span><span class="no">X509</span><span class="o">::</span><span class="no">Store</span><span class="p">.</span><span class="nf">new</span>
<span class="n">store</span><span class="p">.</span><span class="nf">set_default_paths</span>
<span class="n">cert</span> <span class="o">=</span> <span class="no">OpenSSL</span><span class="o">::</span><span class="no">X509</span><span class="o">::</span><span class="no">Certificate</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="no">File</span><span class="p">.</span><span class="nf">read</span><span class="p">(</span><span class="s1">'path/to/certificate.pem'</span><span class="p">))</span>
<span class="n">store</span><span class="p">.</span><span class="nf">add_cert</span><span class="p">(</span><span class="n">cert</span><span class="p">)</span>
<span class="n">response</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
  <span class="ss">method: :get</span><span class="p">,</span>
  <span class="ss">url: </span><span class="s2">"https://example.com/test"</span><span class="p">,</span>
  <span class="ss">ssl_cert_store: </span><span class="n">store</span><span class="p">,</span>
  <span class="ss">verify_ssl: </span><span class="no">OpenSSL</span><span class="o">::</span><span class="no">SSL</span><span class="o">::</span><span class="no">VERIFY_PEER</span>
<span class="p">)</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Hello world! </span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="3" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># Customize ssl_ca_file</span>
<span class="n">resource</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Resource</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
  <span class="s2">"https://example.com/test"</span><span class="p">,</span>
  <span class="ss">ssl_ca_file: </span><span class="s2">"/path/to/ca_certs.pem"</span>
  <span class="ss">verify_ssl: </span><span class="no">OpenSSL</span><span class="o">::</span><span class="no">SSL</span><span class="o">::</span><span class="no">VERIFY_PEER</span>
<span class="p">)</span>
<span class="n">resposne</span> <span class="o">=</span> <span class="n">resource</span><span class="p">.</span><span class="nf">get</span>

<span class="c1"># Customize ssl_ca_path</span>
<span class="n">resource</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Resource</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
  <span class="s2">"https://example.com/test"</span><span class="p">,</span>
  <span class="ss">ssl_ca_path: </span><span class="s2">"/path/to/certs"</span>
  <span class="ss">verify_ssl: </span><span class="no">OpenSSL</span><span class="o">::</span><span class="no">SSL</span><span class="o">::</span><span class="no">VERIFY_PEER</span>
<span class="p">)</span>
<span class="n">resposne</span> <span class="o">=</span> <span class="n">resource</span><span class="p">.</span><span class="nf">get</span>

<span class="c1"># Customize ssl_cert_store</span>
<span class="n">store</span> <span class="o">=</span> <span class="no">OpenSSL</span><span class="o">::</span><span class="no">X509</span><span class="o">::</span><span class="no">Store</span><span class="p">.</span><span class="nf">new</span>
<span class="n">store</span><span class="p">.</span><span class="nf">set_default_paths</span>
<span class="n">cert</span> <span class="o">=</span> <span class="no">OpenSSL</span><span class="o">::</span><span class="no">X509</span><span class="o">::</span><span class="no">Certificate</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="no">File</span><span class="p">.</span><span class="nf">read</span><span class="p">(</span><span class="s1">'path/to/certificate.pem'</span><span class="p">))</span>
<span class="n">store</span><span class="p">.</span><span class="nf">add_cert</span><span class="p">(</span><span class="n">cert</span><span class="p">)</span>
<span class="n">resource</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Resource</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
  <span class="s2">"https://example.com/test"</span><span class="p">,</span>
  <span class="ss">ssl_cert_store: </span><span class="n">store</span><span class="p">,</span>
  <span class="ss">verify_ssl: </span><span class="no">OpenSSL</span><span class="o">::</span><span class="no">SSL</span><span class="o">::</span><span class="no">VERIFY_PEER</span>
<span class="p">)</span>
<span class="n">resposne</span> <span class="o">=</span> <span class="n">resource</span><span class="p">.</span><span class="nf">get</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Hello world! </span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="4" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan CLI hasn't support SSL/TLS customization.
</code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
    









<div class="example-section">
  
    <h3 class="example-title">Customize client certificates</h3>
  
  

  
    <div class="request-box">
      <div class="http-method">HEAD</div>
      <div class="request-target">/test</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Host: example.com">Host: example.com</div>
        
      </div>
      
    </div>

    <div class="request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
        <div class="request-https">
          <img src="/images/posts/rest-man/https.svg" class="https-icon" />
          <img src="/images/posts/rest-man/lock.svg" class="https-lock-icon" />
        </div>
      
      
    </div>

    <div class="response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">200</div>
      <div class="status-text">OK</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
      </div>
      
        <div class="http-body">Hello world!</div>
      
    </div>
  

  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
            <div class="terminal-tab active" data-index="1" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              simple
            </div>
          
        
          
            <div class="terminal-tab " data-index="2" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              advance
            </div>
          
        
          
            <div class="terminal-tab " data-index="3" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              resource
            </div>
          
        
          
            <div class="terminal-tab " data-index="4" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              cli
            </div>
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan simple mode hasn't support SSL/TLS customization.
Please use advance or resource mode.
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="2" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">response</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
  <span class="ss">method: :get</span><span class="p">,</span>
  <span class="ss">url: </span><span class="s2">"https://example.com/test"</span><span class="p">,</span>
  <span class="ss">ssl_client_cert: </span><span class="no">OpenSSL</span><span class="o">::</span><span class="no">X509</span><span class="o">::</span><span class="no">Certificate</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="no">File</span><span class="p">.</span><span class="nf">read</span><span class="p">(</span><span class="s2">"client.crt"</span><span class="p">)),</span>
  <span class="ss">ssl_client_key: </span><span class="no">OpenSSL</span><span class="o">::</span><span class="no">PKey</span><span class="o">::</span><span class="no">RSA</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="no">File</span><span class="p">.</span><span class="nf">read</span><span class="p">(</span><span class="s2">"client.key"</span><span class="p">))</span>
<span class="p">)</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Hello world! </span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="3" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">resource</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Resource</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
  <span class="s2">"https://example.com/test"</span><span class="p">,</span>
  <span class="ss">ssl_client_cert: </span><span class="no">OpenSSL</span><span class="o">::</span><span class="no">X509</span><span class="o">::</span><span class="no">Certificate</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="no">File</span><span class="p">.</span><span class="nf">read</span><span class="p">(</span><span class="s2">"client.crt"</span><span class="p">)),</span>
  <span class="ss">ssl_client_key: </span><span class="no">OpenSSL</span><span class="o">::</span><span class="no">PKey</span><span class="o">::</span><span class="no">RSA</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="no">File</span><span class="p">.</span><span class="nf">read</span><span class="p">(</span><span class="s2">"client.key"</span><span class="p">))</span>
<span class="p">)</span>
<span class="n">resposne</span> <span class="o">=</span> <span class="n">resource</span><span class="p">.</span><span class="nf">get</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Hello world! </span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="4" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan CLI hasn't support SSL/TLS customization.
</code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
</div>]]></content><author><name>Hopper Gee</name></author><category term="rest-man" /><summary type="html"><![CDATA[SSL/TLS Support]]></summary></entry><entry><title type="html">RubyGems.Guide | rest-man | HTTP Status</title><link href="https://rubygems.guide/rest-man/http-status" rel="alternate" type="text/html" title="RubyGems.Guide | rest-man | HTTP Status" /><published>2023-10-17T08:21:03+00:00</published><updated>2023-10-17T08:21:03+00:00</updated><id>https://rubygems.guide/rest-man/status</id><content type="html" xml:base="https://rubygems.guide/rest-man/http-status"><![CDATA[<div class="post">
  <h2 class="title">Status Code</h2>

  <table class="http-status-table">
    <tbody>
      
        <tr>
          <td colspan="3" class="http-status-category" id="1xx">1XX Informational</td>
        </tr>
        
          <tr class="http-status-1xx">
            <td class="http-status-code">100</td>
            <td class="http-status-class">RestMan::Continue</td>
            <td class="http-status-message">Continue</td>
          </tr>
        
          <tr class="http-status-1xx">
            <td class="http-status-code">101</td>
            <td class="http-status-class">RestMan::SwitchingProtocols</td>
            <td class="http-status-message">Switching Protocols</td>
          </tr>
        
          <tr class="http-status-1xx">
            <td class="http-status-code">102</td>
            <td class="http-status-class">RestMan::Processing</td>
            <td class="http-status-message">Processing</td>
          </tr>
        
      
        <tr>
          <td colspan="3" class="http-status-category" id="2xx">2XX Success</td>
        </tr>
        
          <tr class="http-status-2xx">
            <td class="http-status-code">200</td>
            <td class="http-status-class">RestMan::OK</td>
            <td class="http-status-message">OK</td>
          </tr>
        
          <tr class="http-status-2xx">
            <td class="http-status-code">201</td>
            <td class="http-status-class">RestMan::Created</td>
            <td class="http-status-message">Created</td>
          </tr>
        
          <tr class="http-status-2xx">
            <td class="http-status-code">202</td>
            <td class="http-status-class">RestMan::Accepted</td>
            <td class="http-status-message">Accepted</td>
          </tr>
        
          <tr class="http-status-2xx">
            <td class="http-status-code">203</td>
            <td class="http-status-class">RestMan::NonAuthoritativeInformation</td>
            <td class="http-status-message">Non-Authoritative Information</td>
          </tr>
        
          <tr class="http-status-2xx">
            <td class="http-status-code">204</td>
            <td class="http-status-class">RestMan::NoContent</td>
            <td class="http-status-message">No Content</td>
          </tr>
        
          <tr class="http-status-2xx">
            <td class="http-status-code">205</td>
            <td class="http-status-class">RestMan::ResetContent</td>
            <td class="http-status-message">Reset Content</td>
          </tr>
        
          <tr class="http-status-2xx">
            <td class="http-status-code">206</td>
            <td class="http-status-class">RestMan::PartialContent</td>
            <td class="http-status-message">Partial Content</td>
          </tr>
        
          <tr class="http-status-2xx">
            <td class="http-status-code">207</td>
            <td class="http-status-class">RestMan::MultiStatus</td>
            <td class="http-status-message">Multi-Status</td>
          </tr>
        
          <tr class="http-status-2xx">
            <td class="http-status-code">208</td>
            <td class="http-status-class">RestMan::AlreadyReported</td>
            <td class="http-status-message">Already Reported</td>
          </tr>
        
          <tr class="http-status-2xx">
            <td class="http-status-code">226</td>
            <td class="http-status-class">RestMan::IMUsed</td>
            <td class="http-status-message">IM Used</td>
          </tr>
        
      
        <tr>
          <td colspan="3" class="http-status-category" id="3xx">3XX Redirection</td>
        </tr>
        
          <tr class="http-status-3xx">
            <td class="http-status-code">300</td>
            <td class="http-status-class">RestMan::MultipleChoices</td>
            <td class="http-status-message">Multiple Choices</td>
          </tr>
        
          <tr class="http-status-3xx">
            <td class="http-status-code">301</td>
            <td class="http-status-class">RestMan::MovedPermanently</td>
            <td class="http-status-message">Moved Permanently</td>
          </tr>
        
          <tr class="http-status-3xx">
            <td class="http-status-code">302</td>
            <td class="http-status-class">RestMan::Found</td>
            <td class="http-status-message">Found</td>
          </tr>
        
          <tr class="http-status-3xx">
            <td class="http-status-code">303</td>
            <td class="http-status-class">RestMan::SeeOther</td>
            <td class="http-status-message">See Other</td>
          </tr>
        
          <tr class="http-status-3xx">
            <td class="http-status-code">304</td>
            <td class="http-status-class">RestMan::NotModified</td>
            <td class="http-status-message">Not Modified</td>
          </tr>
        
          <tr class="http-status-3xx">
            <td class="http-status-code">305</td>
            <td class="http-status-class">RestMan::UseProxy</td>
            <td class="http-status-message">Use Proxy</td>
          </tr>
        
          <tr class="http-status-3xx">
            <td class="http-status-code">306</td>
            <td class="http-status-class">RestMan::SwitchProxy</td>
            <td class="http-status-message">Switch Proxy</td>
          </tr>
        
          <tr class="http-status-3xx">
            <td class="http-status-code">307</td>
            <td class="http-status-class">RestMan::TemporaryRedirect</td>
            <td class="http-status-message">Temporary Redirect</td>
          </tr>
        
          <tr class="http-status-3xx">
            <td class="http-status-code">308</td>
            <td class="http-status-class">RestMan::PermanentRedirect</td>
            <td class="http-status-message">Permanent Redirect</td>
          </tr>
        
      
        <tr>
          <td colspan="3" class="http-status-category" id="4xx">4XX Client Error</td>
        </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">400</td>
            <td class="http-status-class">RestMan::BadRequest</td>
            <td class="http-status-message">Bad Request</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">401</td>
            <td class="http-status-class">RestMan::Unauthorized</td>
            <td class="http-status-message">Unauthorized</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">402</td>
            <td class="http-status-class">RestMan::PaymentRequired</td>
            <td class="http-status-message">Payment Required</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">403</td>
            <td class="http-status-class">RestMan::Forbidden</td>
            <td class="http-status-message">Forbidden</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">404</td>
            <td class="http-status-class">RestMan::NotFound</td>
            <td class="http-status-message">Not Found</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">405</td>
            <td class="http-status-class">RestMan::MethodNotAllowed</td>
            <td class="http-status-message">Method Not Allowed</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">406</td>
            <td class="http-status-class">RestMan::NotAcceptable</td>
            <td class="http-status-message">Not Acceptable</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">407</td>
            <td class="http-status-class">RestMan::ProxyAuthenticationRequired</td>
            <td class="http-status-message">Proxy Authentication Required</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">408</td>
            <td class="http-status-class">RestMan::RequestTimeout</td>
            <td class="http-status-message">Request Timeout</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">409</td>
            <td class="http-status-class">RestMan::Conflict</td>
            <td class="http-status-message">Conflict</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">410</td>
            <td class="http-status-class">RestMan::Gone</td>
            <td class="http-status-message">Gone</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">411</td>
            <td class="http-status-class">RestMan::LengthRequired</td>
            <td class="http-status-message">Length Required</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">412</td>
            <td class="http-status-class">RestMan::PreconditionFailed</td>
            <td class="http-status-message">Precondition Failed</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">413</td>
            <td class="http-status-class">RestMan::PayloadTooLarge</td>
            <td class="http-status-message">Payload Too Large</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">414</td>
            <td class="http-status-class">RestMan::URITooLong</td>
            <td class="http-status-message">URI Too Long</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">415</td>
            <td class="http-status-class">RestMan::UnsupportedMediaType</td>
            <td class="http-status-message">Unsupported Media Type</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">416</td>
            <td class="http-status-class">RestMan::RangeNotSatisfiable</td>
            <td class="http-status-message">Range Not Satisfiable</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">417</td>
            <td class="http-status-class">RestMan::ExpectationFailed</td>
            <td class="http-status-message">Expectation Failed</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">418</td>
            <td class="http-status-class">RestMan::ImATeapot</td>
            <td class="http-status-message">I'm A Teapot</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">421</td>
            <td class="http-status-class">RestMan::TooManyConnectionsFromThisIP</td>
            <td class="http-status-message">Too Many Connections From This IP</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">422</td>
            <td class="http-status-class">RestMan::UnprocessableEntity</td>
            <td class="http-status-message">Unprocessable Entity</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">423</td>
            <td class="http-status-class">RestMan::Locked</td>
            <td class="http-status-message">Locked</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">424</td>
            <td class="http-status-class">RestMan::FailedDependency</td>
            <td class="http-status-message">Failed Dependency</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">425</td>
            <td class="http-status-class">RestMan::UnorderedCollection</td>
            <td class="http-status-message">Unordered Collection</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">426</td>
            <td class="http-status-class">RestMan::UpgradeRequired</td>
            <td class="http-status-message">Upgrade Required</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">428</td>
            <td class="http-status-class">RestMan::PreconditionRequired</td>
            <td class="http-status-message">Precondition Required</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">429</td>
            <td class="http-status-class">RestMan::TooManyRequests</td>
            <td class="http-status-message">Too Many Requests</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">431</td>
            <td class="http-status-class">RestMan::RequestHeaderFieldsTooLarge</td>
            <td class="http-status-message">Request Header Fields Too Large</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">449</td>
            <td class="http-status-class">RestMan::RetryWith</td>
            <td class="http-status-message">Retry With</td>
          </tr>
        
          <tr class="http-status-4xx">
            <td class="http-status-code">450</td>
            <td class="http-status-class">RestMan::BlockedByWindowsParentalControls</td>
            <td class="http-status-message">Blocked By Windows Parental Controls</td>
          </tr>
        
      
        <tr>
          <td colspan="3" class="http-status-category" id="5xx">5XX Server Error</td>
        </tr>
        
          <tr class="http-status-5xx">
            <td class="http-status-code">500</td>
            <td class="http-status-class">RestMan::InternalServerError</td>
            <td class="http-status-message">Internal Server Error</td>
          </tr>
        
          <tr class="http-status-5xx">
            <td class="http-status-code">501</td>
            <td class="http-status-class">RestMan::NotImplemented</td>
            <td class="http-status-message">Not Implemented</td>
          </tr>
        
          <tr class="http-status-5xx">
            <td class="http-status-code">502</td>
            <td class="http-status-class">RestMan::BadGateway</td>
            <td class="http-status-message">Bad Gateway</td>
          </tr>
        
          <tr class="http-status-5xx">
            <td class="http-status-code">503</td>
            <td class="http-status-class">RestMan::ServiceUnavailable</td>
            <td class="http-status-message">Service Unavailable</td>
          </tr>
        
          <tr class="http-status-5xx">
            <td class="http-status-code">504</td>
            <td class="http-status-class">RestMan::GatewayTimeout</td>
            <td class="http-status-message">Gateway Timeout</td>
          </tr>
        
          <tr class="http-status-5xx">
            <td class="http-status-code">505</td>
            <td class="http-status-class">RestMan::HTTPVersionNotSupported</td>
            <td class="http-status-message">HTTP Version Not Supported</td>
          </tr>
        
          <tr class="http-status-5xx">
            <td class="http-status-code">506</td>
            <td class="http-status-class">RestMan::VariantAlsoNegotiates</td>
            <td class="http-status-message">Variant Also Negotiates</td>
          </tr>
        
          <tr class="http-status-5xx">
            <td class="http-status-code">507</td>
            <td class="http-status-class">RestMan::InsufficientStorage</td>
            <td class="http-status-message">Insufficient Storage</td>
          </tr>
        
          <tr class="http-status-5xx">
            <td class="http-status-code">508</td>
            <td class="http-status-class">RestMan::LoopDetected</td>
            <td class="http-status-message">Loop Detected</td>
          </tr>
        
          <tr class="http-status-5xx">
            <td class="http-status-code">509</td>
            <td class="http-status-class">RestMan::BandwidthLimitExceeded</td>
            <td class="http-status-message">Bandwidth Limit Exceeded</td>
          </tr>
        
          <tr class="http-status-5xx">
            <td class="http-status-code">510</td>
            <td class="http-status-class">RestMan::NotExtended</td>
            <td class="http-status-message">Not Extended</td>
          </tr>
        
          <tr class="http-status-5xx">
            <td class="http-status-code">511</td>
            <td class="http-status-class">RestMan::NetworkAuthenticationRequired</td>
            <td class="http-status-message">Network Authentication Required</td>
          </tr>
        
      
    </tbody>
  </table>

</div>]]></content><author><name>Hopper Gee</name></author><category term="rest-man" /><summary type="html"><![CDATA[Status Code]]></summary></entry><entry><title type="html">RubyGems.Guide | rest-man | Streaming</title><link href="https://rubygems.guide/rest-man/streaming" rel="alternate" type="text/html" title="RubyGems.Guide | rest-man | Streaming" /><published>2023-10-17T08:21:03+00:00</published><updated>2023-10-17T08:21:03+00:00</updated><id>https://rubygems.guide/rest-man/streaming</id><content type="html" xml:base="https://rubygems.guide/rest-man/streaming"><![CDATA[<div class="post">
  <h2 class="title">Streaming</h2>

  

  
    









<div class="example-section">
  
    <h3 class="example-title">Streaming request payload</h3>
  
  
    <div class="example-pre-desc"><p>RestMan will try to stream any file-like payload rather than reading it into
memory. This happens through <code class="language-plaintext highlighter-rouge">RestMan::Payload::Streamed</code>, which is
automatically called internally by <code class="language-plaintext highlighter-rouge">RestMan::Payload.generate</code> on anything
with a <code class="language-plaintext highlighter-rouge">read</code> method.</p>
</div>
  

  
    <div class="request-box">
      <div class="http-method">PUT</div>
      <div class="request-target">/api/image</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="Host: example.com">Host: example.com</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Content-Type: image/jpeg">Content-Type: image/jpeg</div>
        
          <div class="http-header" title="Content-Length: 143685">Content-Length: 143685</div>
        
      </div>
      
        <div class="http-body">[&quot;JPEG binary data goes here&quot;]</div>
      
    </div>

    <div class="request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
      
    </div>

    <div class="response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">200</div>
      <div class="status-text">OK</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
      </div>
      
        <div class="http-body">Image uploaded successfully</div>
      
    </div>
  

  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
            <div class="terminal-tab active" data-index="1" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              simple
            </div>
          
        
          
            <div class="terminal-tab " data-index="2" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              advance
            </div>
          
        
          
            <div class="terminal-tab " data-index="3" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              resource
            </div>
          
        
          
            <div class="terminal-tab " data-index="4" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              cli
            </div>
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">response</span> <span class="o">=</span> <span class="no">RestMan</span><span class="p">.</span><span class="nf">put</span><span class="p">(</span>
  <span class="s1">'http://example.com/api/image'</span><span class="p">,</span>
  <span class="no">File</span><span class="p">.</span><span class="nf">open</span><span class="p">(</span><span class="s2">"./files/profile.jpg"</span><span class="p">,</span> <span class="s1">'r'</span><span class="p">),</span>
  <span class="p">{</span><span class="ss">content_type: :jpg</span><span class="p">}</span>
<span class="p">)</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                   <span class="c1">#=&gt; 200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Image uploaded successfully</span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="2" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">response</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
  <span class="ss">method: :put</span><span class="p">,</span>
  <span class="ss">url: </span><span class="s1">'http://example.com/api/image'</span><span class="p">,</span>
  <span class="ss">payload: </span><span class="no">File</span><span class="p">.</span><span class="nf">open</span><span class="p">(</span><span class="s2">"./files/profile.jpg"</span><span class="p">,</span> <span class="s1">'r'</span><span class="p">),</span>
  <span class="ss">headers: </span><span class="p">{</span> <span class="ss">content_type: :jpg</span> <span class="p">}</span>
<span class="p">)</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                   <span class="c1">#=&gt; 200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Image uploaded successfully</span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="3" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">resource</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Resource</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="s2">"http://example.com/api/image"</span><span class="p">)</span>
<span class="n">response</span> <span class="o">=</span> <span class="n">resource</span><span class="p">.</span><span class="nf">put</span><span class="p">(</span>
  <span class="no">File</span><span class="p">.</span><span class="nf">open</span><span class="p">(</span><span class="s2">"./files/profile.jpg"</span><span class="p">,</span> <span class="s1">'r'</span><span class="p">),</span>
  <span class="p">{</span><span class="ss">content_type: :jpg</span><span class="p">}</span>
<span class="p">)</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                   <span class="c1">#=&gt; 200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Image uploaded successfully</span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="4" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan CLI hasn't support file upload with custom headers
</code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
    









<div class="example-section">
  
    <h3 class="example-title">Streaming responses</h3>
  
  
    <div class="example-pre-desc"><h4 id="use-raw_response-with-tempfile">Use <code class="language-plaintext highlighter-rouge">raw_response</code> with Tempfile</h4>

<p>If you pass <code class="language-plaintext highlighter-rouge">raw_response: true</code> to <code class="language-plaintext highlighter-rouge">RestMan::Request.execute</code>, it will save
the response body to a temporary file (using <code class="language-plaintext highlighter-rouge">Tempfile</code>) and return a
<code class="language-plaintext highlighter-rouge">RestMan::RawResponse</code> object rather than a <code class="language-plaintext highlighter-rouge">RestMan::Response</code>.</p>

<p>Note that the tempfile created by <code class="language-plaintext highlighter-rouge">Tempfile.new</code> will be in <code class="language-plaintext highlighter-rouge">Dir.tmpdir</code>
(usually <code class="language-plaintext highlighter-rouge">/tmp/</code>), which you can override to store temporary files in a
different location. This file will be unlinked when it is dereferenced.</p>

<p>If logging is enabled, this will also print download progress.
Customize the interval with <code class="language-plaintext highlighter-rouge">:stream_log_percent</code> (defaults to
10 for printing a message every 10% complete).</p>

<p>For example:</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">raw</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
  <span class="ss">method: :get</span><span class="p">,</span>
  <span class="ss">url: </span><span class="s1">'http://releases.ubuntu.com/16.04.2/ubuntu-16.04.2-desktop-amd64.iso'</span><span class="p">,</span>
  <span class="ss">raw_response: </span><span class="kp">true</span>
<span class="p">)</span>
<span class="c1">#=&gt; &lt;RestMan::RawResponse</span>
<span class="c1"># @code=200,@file=#&lt;Tempfile:/tmp/rest-man.20170522-5346-1pptjm1&gt;,</span>
<span class="c1"># @request=&lt;RestMan::Request @method="get",</span>
<span class="c1"># @url="http://releases.ubuntu.com/16.04.2/ubuntu-16.04.2-desktop-amd64.iso"&gt;&gt;</span>

<span class="n">raw</span><span class="p">.</span><span class="nf">file</span><span class="p">.</span><span class="nf">size</span>     <span class="c1">#=&gt; 1554186240</span>
<span class="n">raw</span><span class="p">.</span><span class="nf">file</span><span class="p">.</span><span class="nf">path</span>     <span class="c1">#=&gt; "/tmp/rest-man.20170522-5346-1pptjm1"</span>
<span class="n">raw</span><span class="p">.</span><span class="nf">file</span><span class="p">.</span><span class="nf">path</span>     <span class="c1">#=&gt; "/tmp/rest-man.20170522-5346-1pptjm1"</span>

<span class="nb">require</span> <span class="s1">'digest/sha1'</span>
<span class="no">Digest</span><span class="o">::</span><span class="no">SHA1</span><span class="p">.</span><span class="nf">file</span><span class="p">(</span><span class="n">raw</span><span class="p">.</span><span class="nf">file</span><span class="p">.</span><span class="nf">path</span><span class="p">).</span><span class="nf">hexdigest</span>
<span class="c1">#=&gt; "4375b73e3a1aa305a36320ffd7484682922262b3"</span>
</code></pre></div></div>

<h4 id="use-block_response-to-receive-raw-nethttpresponse">Use <code class="language-plaintext highlighter-rouge">block_response</code> to receive raw Net::HTTPResponse</h4>

<p>If you want to stream the data from the response to a file as it comes, rather
than entirely in memory, you can also pass <code class="language-plaintext highlighter-rouge">RestMan::Request.execute</code> a
parameter <code class="language-plaintext highlighter-rouge">:block_response</code> to which you pass a block/proc. This block receives
the raw unmodified Net::HTTPResponse object from Net::HTTP, which you can use
to stream directly to a file as each chunk is received.</p>

<p>Note that this bypasses all the usual HTTP status code handling, so you will
want to do you own checking for HTTP 20x response codes, redirects, etc.</p>

<p>The following is an example:</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="no">File</span><span class="p">.</span><span class="nf">open</span><span class="p">(</span><span class="s1">'/some/output/file'</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> <span class="p">{</span><span class="o">|</span><span class="n">f</span><span class="o">|</span>
  <span class="n">block</span> <span class="o">=</span> <span class="nb">proc</span> <span class="p">{</span> <span class="o">|</span><span class="n">response</span><span class="o">|</span>
    <span class="n">response</span><span class="p">.</span><span class="nf">read_body</span> <span class="k">do</span> <span class="o">|</span><span class="n">chunk</span><span class="o">|</span>
      <span class="n">f</span><span class="p">.</span><span class="nf">write</span> <span class="n">chunk</span>
    <span class="k">end</span>
  <span class="p">}</span>
  <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
    <span class="ss">method: :get</span><span class="p">,</span>
    <span class="ss">url: </span><span class="s1">'http://example.com/some/really/big/file.img'</span><span class="p">,</span>
    <span class="ss">block_response: </span><span class="n">block</span>
  <span class="p">)</span>
<span class="p">}</span>
</code></pre></div></div>
</div>
  

  

  

  
</div>
  
</div>]]></content><author><name>Hopper Gee</name></author><category term="rest-man" /><summary type="html"><![CDATA[Streaming]]></summary></entry><entry><title type="html">RubyGems.Guide | rest-man | Timeout</title><link href="https://rubygems.guide/rest-man/timeout" rel="alternate" type="text/html" title="RubyGems.Guide | rest-man | Timeout" /><published>2023-10-17T08:21:03+00:00</published><updated>2023-10-17T08:21:03+00:00</updated><id>https://rubygems.guide/rest-man/timeout</id><content type="html" xml:base="https://rubygems.guide/rest-man/timeout"><![CDATA[<div class="post">
  <h2 class="title">Timeout</h2>

  
    









<div class="example-section">
  
    <h3 class="example-title">Set Read Timeout</h3>
  
  
    <div class="example-pre-desc"><p>The default <code class="language-plaintext highlighter-rouge">read_timeout</code> is from <code class="language-plaintext highlighter-rouge">net/http</code> which is based on the Ruby version you’re using.</p>
</div>
  

  
    <div class="request-box">
      <div class="http-method">HEAD</div>
      <div class="request-target">/test</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Host: example.com">Host: example.com</div>
        
      </div>
      
    </div>

    <div class="request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
      
    </div>

    <div class="response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">200</div>
      <div class="status-text">OK</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
      </div>
      
        <div class="http-body">Hello world!</div>
      
    </div>
  

  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
            <div class="terminal-tab active" data-index="1" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              simple
            </div>
          
        
          
            <div class="terminal-tab " data-index="2" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              advance
            </div>
          
        
          
            <div class="terminal-tab " data-index="3" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              resource
            </div>
          
        
          
            <div class="terminal-tab " data-index="4" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              cli
            </div>
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan simple mode hasn't support timeout customization.
Please use advance or resource mode.
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="2" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">response</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
  <span class="ss">method: :get</span><span class="p">,</span>
  <span class="ss">url: </span><span class="s2">"http://example.com/test"</span><span class="p">,</span>
  <span class="ss">read_timeout: </span><span class="mi">30</span>
<span class="p">)</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Hello world! </span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="3" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">resource</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Resource</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
  <span class="s2">"http://example.com/test"</span><span class="p">,</span>
  <span class="ss">read_timeout: </span><span class="mi">30</span>
<span class="p">)</span>
<span class="n">resposne</span> <span class="o">=</span> <span class="n">resource</span><span class="p">.</span><span class="nf">get</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Hello world! </span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="4" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan CLI hasn't support timeout customization.
</code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
    









<div class="example-section">
  
    <h3 class="example-title">Set Open Timeout</h3>
  
  
    <div class="example-pre-desc"><p>The default <code class="language-plaintext highlighter-rouge">open_timeout</code> is from <code class="language-plaintext highlighter-rouge">net/http</code> which is based on the Ruby version you’re using.</p>
</div>
  

  
    <div class="request-box">
      <div class="http-method">HEAD</div>
      <div class="request-target">/test</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Host: example.com">Host: example.com</div>
        
      </div>
      
    </div>

    <div class="request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
      
    </div>

    <div class="response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">200</div>
      <div class="status-text">OK</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
      </div>
      
        <div class="http-body">Hello world!</div>
      
    </div>
  

  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
            <div class="terminal-tab active" data-index="1" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              simple
            </div>
          
        
          
            <div class="terminal-tab " data-index="2" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              advance
            </div>
          
        
          
            <div class="terminal-tab " data-index="3" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              resource
            </div>
          
        
          
            <div class="terminal-tab " data-index="4" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              cli
            </div>
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan simple mode hasn't support timeout customization.
Please use advance or resource mode.
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="2" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">response</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
  <span class="ss">method: :get</span><span class="p">,</span>
  <span class="ss">url: </span><span class="s2">"http://example.com/test"</span><span class="p">,</span>
  <span class="ss">open_timeout: </span><span class="mi">30</span>
<span class="p">)</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Hello world! </span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="3" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">resource</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Resource</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
  <span class="s2">"http://example.com/test"</span><span class="p">,</span>
  <span class="ss">open_timeout: </span><span class="mi">30</span>
<span class="p">)</span>
<span class="n">resposne</span> <span class="o">=</span> <span class="n">resource</span><span class="p">.</span><span class="nf">get</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Hello world! </span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="4" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan CLI hasn't support timeout customization.
</code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
    









<div class="example-section">
  
    <h3 class="example-title">Set Write Timeout</h3>
  
  
    <div class="example-pre-desc"><p>The default <code class="language-plaintext highlighter-rouge">write_timeout</code> is from <code class="language-plaintext highlighter-rouge">net/http</code> which is based on the Ruby version you’re using.</p>
</div>
  

  
    <div class="request-box">
      <div class="http-method">HEAD</div>
      <div class="request-target">/test</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Host: example.com">Host: example.com</div>
        
      </div>
      
    </div>

    <div class="request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
      
    </div>

    <div class="response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">200</div>
      <div class="status-text">OK</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
      </div>
      
        <div class="http-body">Hello world!</div>
      
    </div>
  

  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
            <div class="terminal-tab active" data-index="1" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              simple
            </div>
          
        
          
            <div class="terminal-tab " data-index="2" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              advance
            </div>
          
        
          
            <div class="terminal-tab " data-index="3" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              resource
            </div>
          
        
          
            <div class="terminal-tab " data-index="4" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              cli
            </div>
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan simple mode hasn't support timeout customization.
Please use advance or resource mode.
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="2" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">response</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
  <span class="ss">method: :get</span><span class="p">,</span>
  <span class="ss">url: </span><span class="s2">"http://example.com/test"</span><span class="p">,</span>
  <span class="ss">write_timeout: </span><span class="mi">30</span>
<span class="p">)</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Hello world! </span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="3" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">resource</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Resource</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
  <span class="s2">"http://example.com/test"</span><span class="p">,</span>
  <span class="ss">write_timeout: </span><span class="mi">30</span>
<span class="p">)</span>
<span class="n">resposne</span> <span class="o">=</span> <span class="n">resource</span><span class="p">.</span><span class="nf">get</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Hello world! </span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="4" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan CLI hasn't support timeout customization.
</code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
    









<div class="example-section">
  
    <h3 class="example-title">Set SSL Timeout</h3>
  
  
    <div class="example-pre-desc"><p>The default <code class="language-plaintext highlighter-rouge">ssl_timeout</code> is from <code class="language-plaintext highlighter-rouge">net/http</code> which is based on the Ruby version you’re using.</p>
</div>
  

  
    <div class="request-box">
      <div class="http-method">HEAD</div>
      <div class="request-target">/test</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Host: example.com">Host: example.com</div>
        
      </div>
      
    </div>

    <div class="request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
      
    </div>

    <div class="response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">200</div>
      <div class="status-text">OK</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
      </div>
      
        <div class="http-body">Hello world!</div>
      
    </div>
  

  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
            <div class="terminal-tab active" data-index="1" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              simple
            </div>
          
        
          
            <div class="terminal-tab " data-index="2" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              advance
            </div>
          
        
          
            <div class="terminal-tab " data-index="3" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              resource
            </div>
          
        
          
            <div class="terminal-tab " data-index="4" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              cli
            </div>
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan simple mode hasn't support timeout customization.
Please use advance or resource mode.
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="2" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">response</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
  <span class="ss">method: :get</span><span class="p">,</span>
  <span class="ss">url: </span><span class="s2">"http://example.com/test"</span><span class="p">,</span>
  <span class="ss">ssl_timeout: </span><span class="mi">30</span>
<span class="p">)</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Hello world! </span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="3" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">resource</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Resource</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
  <span class="s2">"http://example.com/test"</span><span class="p">,</span>
  <span class="ss">ssl_timeout: </span><span class="mi">30</span>
<span class="p">)</span>
<span class="n">resposne</span> <span class="o">=</span> <span class="n">resource</span><span class="p">.</span><span class="nf">get</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Hello world! </span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="4" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan CLI hasn't support timeout customization.
</code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
    









<div class="example-section">
  
    <h3 class="example-title">Set Keep-Alive Timeout</h3>
  
  
    <div class="example-pre-desc"><p>The default <code class="language-plaintext highlighter-rouge">keep_alive_timeout</code> is from <code class="language-plaintext highlighter-rouge">net/http</code> which is based on the Ruby version you’re using.</p>
</div>
  

  
    <div class="request-box">
      <div class="http-method">HEAD</div>
      <div class="request-target">/test</div>
      <div class="http-version">HTTP/1.1</div>
      <div class="http-headers">
        
          <div class="http-header" title="Accept: */*">Accept: */*</div>
        
          <div class="http-header" title="Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3">Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3</div>
        
          <div class="http-header" title="User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20">User-Agent: rest-man/1.1.0 (darwin21 arm64) ruby/3.1.2p20</div>
        
          <div class="http-header" title="Host: example.com">Host: example.com</div>
        
      </div>
      
    </div>

    <div class="request-arrow">
      <?xml version="1.0" encoding="UTF-8"?>
<svg width="248px" height="22px" viewBox="0 0 248 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
      <path id="Line" d="M230.508552,-2.71830388 L247.133391,5.06724195 C248.192682,5.56331625 248.301809,7.02706842 247.327787,7.67473219 L232.041188,17.8393706 C231.351345,18.2980733 230.420264,18.1106971 229.961562,17.4208541 C229.502859,16.7310111 229.690235,15.7999309 230.380078,15.3412282 L240.898,8.346 L230.753506,9.10356057 C189.311546,12.0870822 155.706444,13.5791595 129.931955,13.5791595 C101.148678,13.5791595 58.309368,11.7181973 1.40211822,7.99681061 C0.575456766,7.942752 -0.050861591,7.22878731 0.00319702098,6.40212585 C0.0572556329,5.57546439 0.771220317,4.94914604 1.59788178,5.00320465 C58.4454288,8.72068712 101.227422,10.5791595 129.931955,10.5791595 C155.62452,10.5791595 189.161978,9.09008563 230.534275,6.11158405 L240.674,5.355 L229.236235,-0.00146580008 C228.530132,-0.332139372 228.202154,-1.14262439 228.458926,-1.86230642 L228.513974,-1.9960434 C228.865315,-2.74627752 229.758318,-3.06964455 230.508552,-2.71830388 Z" transform="translate(123.500000, 9.289584) scale(1, -1) translate(-123.500000, -9.289584) " fill-rule="nonzero">
      </path>
  </g>
</svg>
      
      
    </div>

    <div class="response-box">
      <div class="http-version">HTTP/1.1</div>
      <div class="status-code">200</div>
      <div class="status-text">OK</div>
      <div class="http-headers">
        
          <div class="http-header" title="Content-Type: text/plain">Content-Type: text/plain</div>
        
      </div>
      
        <div class="http-body">Hello world!</div>
      
    </div>
  

  

  
    <div class="terminal" data-controller="terminal">
      <div class="terminal-bar">
        <div class="close-icon"></div>
        <div class="minimize-icon"></div>
        <div class="fullscreen-icon"></div>
        
          
            <div class="terminal-tab active" data-index="1" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              simple
            </div>
          
        
          
            <div class="terminal-tab " data-index="2" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              advance
            </div>
          
        
          
            <div class="terminal-tab " data-index="3" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              resource
            </div>
          
        
          
            <div class="terminal-tab " data-index="4" data-terminal-target="tab" data-action="click-&gt;terminal#switchTab">
              cli
            </div>
          
        
      </div>
      
        <div class="terminal-body active" data-index="1" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan simple mode hasn't support timeout customization.
Please use advance or resource mode.
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="2" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">response</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Request</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span>
  <span class="ss">method: :get</span><span class="p">,</span>
  <span class="ss">url: </span><span class="s2">"http://example.com/test"</span><span class="p">,</span>
  <span class="ss">keep_alive_timeout: </span><span class="mi">30</span>
<span class="p">)</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Hello world! </span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="3" data-terminal-target="body">
          <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">resource</span> <span class="o">=</span> <span class="no">RestMan</span><span class="o">::</span><span class="no">Resource</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
  <span class="s2">"http://example.com/test"</span><span class="p">,</span>
  <span class="ss">keep_alive_timeout: </span><span class="mi">30</span>
<span class="p">)</span>
<span class="n">resposne</span> <span class="o">=</span> <span class="n">resource</span><span class="p">.</span><span class="nf">get</span>

<span class="n">response</span><span class="p">.</span><span class="nf">code</span>                 <span class="c1">#=&gt;200</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span>                <span class="c1">#=&gt; Hash</span>
<span class="n">response</span><span class="p">.</span><span class="nf">headers</span><span class="p">[</span><span class="ss">:content_type</span><span class="p">]</span> <span class="c1">#=&gt; text/plain</span>
<span class="n">response</span><span class="p">.</span><span class="nf">body</span>                   <span class="c1">#=&gt; Hello world! </span>
</code></pre></div></div>

        </div>
      
        <div class="terminal-body " data-index="4" data-terminal-target="body">
          <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RestMan CLI hasn't support timeout customization.
</code></pre></div></div>

        </div>
      
    </div>
  
</div>
  
</div>]]></content><author><name>Hopper Gee</name></author><category term="rest-man" /><summary type="html"><![CDATA[Timeout]]></summary></entry></feed>