コード例 #1
0
class CacheMiddleware(BaseMiddleware):

    def __init__(self, capacity=50):
        self.cache = HTTPCache(capacity=capacity)

    def before_send(self, request, *args, **kwargs):
        """Adapted from `CachingHTTPAdapter::send`. Check for cached response
        and update request with conditional headers.
        """
        cached = self.cache.retrieve(request)
        if cached is not None:
            return cached

    def after_build_response(self, req, resp, response):
        """Adapted from `CachingHTTPAdapter::build_response`. Fetch cached
        response if appropriate and mark with `from_cache`.

        """
        if response.status_code == httplib.NOT_MODIFIED:
            response = self.cache.handle_304(response)
        else:
            self.cache.store(response)
        return response
コード例 #2
0
 def __init__(self, capacity=50):
     self.cache = HTTPCache(capacity=capacity)