Я хотел бы написать псевдомодуль, который заставляет делать запрос GET, который продолжает выполняться (почти как тот, который использует API потоковой передачи Twitter), но при этом не нужно указывать все параметры каждый раз, когда кто-то хочет вызвать функция для выполнения того же запроса GET.
В моем module.py у меня есть
class viewResults():
def __init__(self,username,password,keyname,consume):
self.buffer = ""
self.consume = consume
self.conn = pycurl.Curl()
self.conn.setopt(pycurl.USERPWD, "%s:%s" % (username, password))
self.conn.setopt(pycurl.URL, "http://crowdprocess.no.de/"+keyname+"/results")
self.conn.setopt(pycurl.WRITEFUNCTION, self.on_receive)
# self.conn.setopt(pycurl.VERBOSE, 1)
# self.conn.setopt(pycurl.DEBUGFUNCTION, self.debug)
self.conn.perform()
# def debug(self,debug_type,debug_message):
# print 'type: '+str(debug_type)+' message'+str(debug_message)
def on_receive(self, data):
self.buffer += data
if data.endswith("\r\n") and self.buffer.strip():
content = json.loads(self.buffer)
self.consume(content)
self.buffer = ""
А на index.py у меня
from module import viewResults
def consume(content):
print content
viewResults('username','password','keyname',consume)
Итак, я хотел передать только параметры username, password, keyname и функцию «потребление», которые должны вызываться, когда буфер заполнен действительными данными JSON ...
Что происходит, так это то, что запрос фактически выполняется, если включен VERBOSE, я вижу все поступающие данные, но функция get "потребляет более высокий уровень" get is ничто ...
Как мне этого добиться?
Спасибо.