Query the server for an item, parse the JSON, and return the result.

        Keyword arguments:
        key -- the key of the item that you'd like to retrieve. Required.
        cache -- the name of the cache that the item resides in. Defaults to
                 None, which uses self.name. If no name is set, raises a
                 ValueError.

def get(self, key, cache=None):
        """Query the server for an item, parse the JSON, and return the result.

        Keyword arguments:
        key -- the key of the item that you'd like to retrieve. Required.
        cache -- the name of the cache that the item resides in. Defaults to
                 None, which uses self.name. If no name is set, raises a
                 ValueError.
        """
        if cache is None:
            cache = self.name
        if cache is None:
            raise ValueError("Cache name must be set")
        cache = quote_plus(cache)
        key = quote_plus(key)
        url = "caches/%s/items/%s" % (cache, key)
        result = self.client.get(url)
        return Item(values=result["body"])