这是一个简单但是非常优雅的 HTTP 库,对于一些常见的 API 调用非常简单实用。
简介
比 urllib2
模块要简洁很多,同时支持 HTTP 连接保持和连接池,可以使用 cookie
保持会话,也支持文件上传等。
import requests
requests.get("http://example.com/post") # GET请求
requests.get(url="http://example.com/post", params={"key": "value"}) # 带参数
requests.post("http://example.com/post") # POST请求
requests.put("http://example.com/post") # PUT请求
requests.delete("http://example.com/post") # DELETE请求
requests.head("http://example.com/post") # HEAD请求
requests.options("http://example.com/post") # OPTIONS请求
req = requests.get(url="http://example.com/post", params={"key": "value"})
print(req.url) # 查看生成的URL信息
print(req.text) # 返回body信息
print(req.json()) # 直接转换为JSON格式信息
print(req.status_code) # 状态码
print(req.headers["content-type"]) # 头信息
post
请求可以通过 body=json.dumps(body)
或者 json=body
传递 JSON 格式的参数,两者等价。
其它
日志
当使用 logging
作为日志库时,默认会打印很多调试信息,此时可以通过 logging.getLogger("urllib3").setLevel(logging.WARNING)
调整日志级别。