def send(self, request): retryable = True redirect_settings = self.configure_redirects(request.context.options) while retryable: response = self.next.send(request) redirect_location = self.get_redirect_location(response) if redirect_location: retryable = self.increment(redirect_settings, response, redirect_location) request.http_request = response.http_request continue return response raise TooManyRedirectsError(redirect_settings['history'])
def send(self, request): """Sends the PipelineRequest object to the next policy. Uses redirect settings to send request to redirect endpoint if necessary. :param request: The PipelineRequest object :type request: ~azure.core.pipeline.PipelineRequest :return: Returns the PipelineResponse or raises error if maximum redirects exceeded. :rtype: ~azure.core.pipeline.PipelineResponse :raises: ~azure.core.exceptions.TooManyRedirectsError if maximum redirects exceeded. """ retryable = True redirect_settings = self.configure_redirects(request.context.options) while retryable: response = self.next.send(request) redirect_location = self.get_redirect_location(response) if redirect_location and redirect_settings['allow']: retryable = self.increment(redirect_settings, response, redirect_location) request.http_request = response.http_request continue return response raise TooManyRedirectsError(redirect_settings['history'])