def _urlopen(path, args, method="get"): connection = Connection.get_instance() connection.start() if not connection.started(): raise ConnectionError(u"Error establishing connection.") query = urllib.urlencode(args) if method == "get": url = "%s/%s/?%s" % (SERVER_URL, path, query) else: url = "%s/%s/" % (SERVER_URL, path) try: if method == "get": request = urllib.urlopen(url) else: request = urllib.urlopen(url, query) json_response = request.read() try: return json.loads(json_response) except ValueError: raise ConnectionError(u"Invalid server response") request.close() except IOError: raise ConnectionError(u"Error reading server response")
def close(self): Connection.get_instance().stop() self.cache.close()