Skip to content

Instantly share code, notes, and snippets.

@ifduyue
Created December 14, 2011 04:04
Show Gist options
  • Save ifduyue/1475209 to your computer and use it in GitHub Desktop.
Save ifduyue/1475209 to your computer and use it in GitHub Desktop.
httpsqs python client
#coding: utf8
import urllib
class HTTPSQS:
def __init__(self, host='127.0.0.1', port=1218, charset=None):
self.host = host
self.port = port
self.charset = charset
def query(self, qs, data=None):
d = {}
if self.charset:
d['charset'] = self.charset
d.update(qs)
qs = urllib.urlencode(d)
url = 'http://%s:%s/?%s' % (self.host, self.port, qs)
try:
f = urllib.urlopen(url) if data is None else urllib.urlopen(url, data)
except Exception, e:
sys.stderr.write("%s\n" % e)
return False
if f.code != 200:
return False
try:
data = f.read()
except Exception, e:
sys.stderr.write("%s\n" % e)
return False
return data
def get(self, qname):
ret = self.query({'opt': 'get', 'name': qname})
if ret == 'HTTPSQS_GET_END':
return None
else:
return ret
def put(self, qname, data):
ret = self.query({'opt': 'put', 'name': qname}, data)
if ret == 'HTTPSQS_PUT_OK':
return True
else:
return False
def status(self, qname):
return self.query({'opt': 'status', 'name': qname})
def status_json(self, qname):
return self.query({'opt': 'status_json', 'name': qname})
def reset(self, qname):
return self.query({'opt': 'reset', 'name': qname})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment