Requests
作用:发送网络请求,获得响应数据
官方文档:https://requests.readthedocs.io/zh_CN/latest/index.html
Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库
它比urllib更加方便,可以节约大量的工作,完全满足HTTP测试需求的库
⼀句话——Requests是一个Python代码编写的HTTP请求库,方便在代码中模拟浏览器发送http请求
安装命令:pip install requests
一,Requests请求
1,实例引入
# https://www.baidu.com/
import requests
response = requests.get('https://www.baidu.com/')
print(response) # 响应体对象(响应源码+响应状态码+响应URL)
print(response.text) # 查看响应体内容
print(type(response.text)) # 查看响应内容的数据类型
print(response.status_code) # 查看响应状态码
print(response.url)
2,各种请求方式
requests.get('http://httpbin.org/get') # GET请求
requests.post('http://httpbin.org/post') # POST请求
requests.put('http://httpbin.org/put')
requests.delete('http://httpbin.org/delete')
requests.head('http://httpbin.org/get')
requests.options('http://httpbin.org/get')
3.1,基于get请求
1.基本写法
# 测试网站:http://httpbin.org/get
url = 'http://httpbin.org/get' # 目标站点
r = requests.get(url)
print(r.status_code)
print(r.text)
print(type(r.text))
2.带参数的get请求
# 测试网站:http://httpbin.org/get
# 第一种写法
# https://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD&pn=0&oq=%E4%B8%AD%E5%9B%BD&ie=utf-8&usm=6&fenlei=256&rsv_idx=1&rsv_pq=a1e3d64c000d24b8&rsv_t=a275rbOHpNWKXTdaXGjTAG6uADWzJfkIijwnQpMSUN4WqOcOki9o0nvbRrw
url= 'http://httpbin.org/get?age=12&name=lisi'
r = requests.get(url)
print(r.status_code)
print(r.text)
# 推荐写法
# 把参数单独构建在字典
d = {
'name':'lisi',
'age':10
}
url = 'http://httpbin.org/get'
r = requests.get(url,params=d) # params:携带get请求参数的
print(r.text)
3.2,基于post请求
# http://httpbin.org/post
url ='http://httpbin.org/post'
d = {
'name':'lisi',
'age':10
}
r = requests.post(url,data = d) # data参数作用是携带post请求的参数的
print(r.text)
4,获取json数据
import requests
import json
url = 'http://httpbin.org/get'
r = requests.get(url)
# print(r.status_code) # 查看响应状态码
a = r.text
# print(a)
# print(type(a)) # 查看数据类型
dict_data = json.loads(a)
# print(dict_data)
# print(type(dict_data))
res = dict_data['headers']['Host']
# print(res)
json_data = r.js