模块说明
requests是使用Apache2 licensed 许可证的HTTP库。
比urllib2模块更简洁
Requests可以轻而易举的完成浏览器可有的任何操作。
现代,国际化,友好。
也可以用requests来实现一些接口测试工作。
导入模块使用:
import requests
基础用法
发送简单请求
import requests r = requests.get('https://github.com/Ranxf') # 最基本的get请求,返回的r值为接口访问状态 r = requests.get(url='http://dict.baidu.com/s', params={'wd': 'python'}) # 带参数的get请求 r = requests.get(‘https://github.com/timeline.json’) # GET请求 r = requests.post(“http://httpbin.org/post”) # POST请求 r = requests.put(“http://httpbin.org/put”) # PUT请求 r = requests.delete(“http://httpbin.org/delete”) # DELETE请求 r = requests.head(“http://httpbin.org/get”) # HEAD请求 r = requests.options(“http://httpbin.org/get” ) # OPTIONS请求
为url传递参数
import requests url = "http://10.48.51.225:2500/service/select_project" requests.get(url=url, params ={'project': 'admin'}) url = "http://10.48.51.225:2500/service/select_project" requests.post(url=url, json={'project': 'admin'}) params在get请求中使用,data、json在post请求中使用
响应
r.encoding #获取当前的编码 r.encoding = 'utf-8' #设置编码 r.text #以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。 r.content #以字节形式(二进制)返回。字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。 r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None r.status_code #响应状态码 r.raw #返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read() r.ok # 查看r.ok的布尔值便可以知道是否登陆成功 r.requests.headers #返回发送到服务器的头信息 r.cookies #返回cookie r.history #返回重定向信息,当然可以在请求是加上allow_redirects = false 阻止重定向 #*特殊方法*# r.json() #Requests中内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常 r.raise_for_status() #失败请求(非200响应)抛出异常