因为epoll主要是用来解决网络IO的并发问题,所以Tornado的异步编程也主要体现在网络IO的异步上,即异步Web请求。
1. tornado.httpclient.AsyncHTTPClient
Tornado提供了一个异步Web请求客户端tornado.httpclient.AsyncHTTPClient用来进行异步Web请求。
fetch(request, callback=None)
用于执行一个web请求request,并异步返回一个tornado.httpclient.HTTPResponse响应。
request可以是一个url,也可以是一个tornado.httpclient.HTTPRequest对象。如果是url,fetch会自己构造一个HTTPRequest对象。
HTTPRequest
HTTP请求类,HTTPRequest的构造函数可以接收众多构造参数,最常用的如下:
- url (string) – 要访问的url,此参数必传,除此之外均为可选参数
- method (string) – HTTP访问方式,如“GET”或“POST”,默认为GET方式
- headers (HTTPHeaders or dict) – 附加的HTTP协议头
- body – HTTP请求的请求体
HTTPResponse
HTTP响应类,其常用属性如下:
- code: HTTP状态码,如 200 或 404
- reason: 状态码描述信息
- body: 响应体字符串
- error: 异常(可有可无)
2. 测试接口
新浪IP地址库
接口说明
1.请求接口(GET):
http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=[ip地址字串]
2.响应信息&#