async def _detect_by_application(self):
    try:
        session = self.request_handler.get_new_session()
        response = session.get(timeout=20, allow_redirects=True, url='{}://{}:{}'.format(self.host.protocol, self.host.target, self.host.port))
        for (waf, method) in self.waf_app_method_map.items():
            result = method(response)
            if result:
                self._waf_detected(waf)
    except (ConnectionError, TooManyRedirects) as e:
        raise WAFException("Couldn't get response from server.\nCaused due to exception: {}".format(str(e)))
async def _detect_by_application(self):
    try:
        session = self.request_handler.get_new_session()
        response = session.get(timeout=20, allow_redirects=True, url='{}://{}:{}'.format(self.host.protocol, self.host.target, self.host.port))
        for (waf, method) in self.waf_app_method_map.items():
            result = method(response)
            if result:
                self._waf_detected(waf)
    except (ConnectionError, TooManyRedirects) as e:
        raise WAFException("Couldn't get response from server.\nCaused due to exception: {}".format(str(e)))