我在Tornado中有这部分代码:
............
como_url = "".join(['http://', options.como_address, ':', options.como_port,
'/ztc_config?netid=0&opcode_group=0&opcode=0&start=-20s&end=-1s'])
http_client = AsyncHTTPClient()
response = yield tornado.gen.Task(http_client.fetch, como_url)
ret = {}
if response.error:
ret['error'] = 'Error while retrieving the response'
self.write(tornado.escape.json_encode(ret))
self.finish()
else:
.........
我向传感器发送命令,然后向数据库发出http请求以从传感器检索响应。 在我做出回应并采取行动之后。
现在,我必须发送两次http请求以检索响应。我第一次向传感器发送命令时,请求太快而无法接收响应。
重新发送命令后,响应正确,一切正常。
为什么呢?如何设置我不知道请求超时...或者如何在Tornado中重新发送请求两次?
谢谢。
修改
我是这样写的:como_url = "".join(['http://', options.como_address, ':', options.como_port,
'/ztc_config?netid=0&opcode_group=0&opcode=0&start=-20s&end=-1s'])
http_client = AsyncHTTPClient()
#response = yield tornado.gen.Task(http_client.fetch, como_url)
request = tornado.httpclient.HTTPRequest(url=como_url, connect_timeout=5.0, request_timeout=2.0)
response = yield tornado.gen.Task(http_client.fetch, request)
print response
我获得了:
HTTPResponse(code=200,request_time=0.30609703063964844,buffer=<io.BytesIO object at 0x276a1d0>,_body=None,time_info={},request=<tornado.httpclient.HTTPRequest object at 0x2764310>,effective_url='http://131.114.52.207:44444/ztc_config?netid=0&opcode_group=0&opcode=0&start=-20s&end=-1s',headers={'Content-Type': 'text/plain'},error=None)
为什么request_time = 0 ????