In Mechanize how do I determine response type for a post_connect_hook

169 views Asked by At

I am following Jimm Stout's suggestion for websites that don't set content-type.

  agent = Mechanize.new do |a|
    a.post_connect_hooks << ->(_,_,response,_) do
      if response.content_type.empty?
        response.content_type = 'text/html'
      end
    end
  end

How do I avoid setting the Content-Type if I get a redirect, a 40x or a 50x.

1

There are 1 answers

0
zhon On BEST ANSWER

You can make sure the response class is Net::HTTPOK.

agent = Mechanize.new do |a|
  a.post_connect_hooks << ->(_,_,response,_) do
    break unless response.class == Net::HTTPOK
    if response.content_type.empty?
      response.content_type = 'text/html'
    end
  end
end