title: How do I get retry handling with python zeep? I'm using a requests retry session, but the exception is not handled
body: <p>I'm using zeep. The service I am using generates timeout errors every now and then, and I want to use automatic retry functionality. </p>
  
  <p>I am trying to use a Requests retry session, but the timeout exception is not being caught and no retry is attempted. </p>
  
  <p>I set up a Requests retry session (below) and I set up the client attribute of my class (currently with a timeout value to cause errors):</p>
  
  <pre><code> session = requests_retry_session()
   transport = Transport(session=session,timeout=20,operation_timeout=.001)
   self.client = Client(self.wsdl_url,transport=transport)
  </code></pre>
  
  <p>...</p>
  
  <pre><code>def requests_retry_session(
          retries=10,
          backoff_factor=0.3,
          status_forcelist=(500, 502, 503, 504),
          session=None,
  ) -&gt; requests.Session:
      session = session or requests.Session()
      retry = Retry(
          total=retries,
          read=retries,
          connect=retries,
          backoff_factor=backoff_factor,
          status_forcelist=status_forcelist,
      )
      adapter = HTTPAdapter(max_retries=retry)
      session.mount('http://', adapter)
      session.mount('https://', adapter)
      return session
  </code></pre>
  
  <p>I'm getting a requests.exceptions.ReadTimeout 
  (I assume this error is the same as the one I'm getting in real life, but with a 20s timeout, my logging is not good enough yet to be sure)</p>
  
  <p>The exception is not being handled by the session. </p>
  
  <p>Why not?  </p>
  
  <p>EDIT: zeep sends a POST request somewhere, which I did not find with my own debugging but activating debug logging in Requests shows it.</p>
  
  <p>Retry does not work on POST by default. </p>
  
  <p><a href="https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html" rel="noreferrer">https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html</a></p>
  
  <p>I set method_whitelist=False to change that, and now I am triggering retries. </p>