Requests库GET请求是使用HTTP协议中的GET请求方式对目标网站发起请求。
(不带参数的GET请求请看上一篇文章的练习)
1、Requests库待参数的GET请求
使用Get方法带参数请求时,是params=参数字典,而不是data=参数字典。data=参数字典是post方法的参数。
"""
1.学习目标必须掌握requests中带参数的get请求
2.语法requests.get(url,parmas=None)2.1 不带参数的get请求(看上一篇中的练习)2.2 带参数的get请求(如下)
3.操作步骤# 1.导入requests库# 2.明确请求地址# 3.明确请求参数data = {key:value} 字典格式# 4.发送请求获取返回数据
4.需求使用requests库发送一个带参数的get请求
"""
# 1.导入requests库
import json
import requests# 2.明确请求地址
url = "http://127.0.0.1:8000/api/departments/"
# 3.明确请求参数
# 是一个字典类型数据
data = {"$dep_id_list": "10,11"}
# 4.发送请求
response = requests.get(url=url, params=data)
# print(response.json())# 将python对象转换为json字符串(格式化放回数据)
result = json.dumps(response.json(), indent=2, ensure_ascii=False)
# print(type(result)) # 字符串类型
print(result)"""
结果:
{"count": 2,"next": null,"previous": null,"results": [{"dep_id": "10","dep_name": "超神_10","master_name": "陆兴雷_10","slogan": "带头学习"},{"dep_id": "11","dep_name": "超神_11","master_name": "陆兴雷_11","slogan": "带头学习"}]
}"""
2、查看GET请求的内容
我们可以通过访问Httpbin
来查看或者调试Requests库发送请求的内容。
还是以上面的例子为例:
# 1.导入requests库
import json
import requests# 2.明确请求地址
# url = "http://127.0.0.1:8000/api/departments/"
url = "http://127.0.0.1:9999/get"
# 3.明确请求参数
# 是一个字典类型数据
data = {"$dep_id_list": "10,11"}
# 4.发送请求
response = requests.get(url=url, params=data)
# response = requests.get(url='http://httpbin.org/get?name=admin&age=20') # 这种方式调用也可以
# print(response.json())# 将python对象转换为json字符串(格式化放回数据)
result = json.dumps(response.json(), indent=2, ensure_ascii=False)
# print(type(result)) # 字符串类型
print(result)"""
接口返回结果:
{"args": {"$dep_id_list": "10,11"},"headers": {"Accept": "*/*","Accept-Encoding": "gzip, deflate","Connection": "keep-alive","Host": "127.0.0.1:9999","User-Agent": "python-requests/2.18.4"},"origin": "127.0.0.1","url": "http://127.0.0.1:9999/get?%24dep_id_list=10%2C11"
}我们可以看到args属性中有参数内容,
如果是不带参数的Get请求,args属性中是没有内容的,如下:{"args": {},"headers": {"Accept": "*/*","Accept-Encoding": "gzip, deflate","Connection": "keep-alive","Host": "127.0.0.1:9999","User-Agent": "python-requests/2.18.4"},"origin": "127.0.0.1","url": "http://127.0.0.1:9999/get"
}
"""
3、带请求头、参数的get请求
例如上面例子中,请求头信息中"User-Agent": "python-requests/2.18.4"
,我们需要改变请求头中User-Agent
属性的内容,看下面例子:
# 1.导入requests库
import json
import requests# 2.明确请求地址
# url = "http://127.0.0.1:8000/api/departments/"
url = "http://127.0.0.1:9999/get"
# 3.明确请求参数
# 是一个字典类型数据
data = {"$dep_id_list": "10,11"}# 明确请求头信息
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser/10.6.4209.400"}# 4.发送请求
response = requests.get(url=url, params=data, headers=headers)
# print(response.json())# 将python对象转换为json字符串(格式化放回数据)
result = json.dumps(response.json(), indent=2, ensure_ascii=False)
# print(type(result)) # 字符串类型
print(result)"""
接口返回结果:可以看到User-Agent属性变成了我们设置的内容了。
{"args": {"$dep_id_list": "10,11"},"headers": {"Accept": "*/*","Accept-Encoding": "gzip, deflate","Connection": "keep-alive","Host": "127.0.0.1:9999","User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser/10.6.4209.400"},"origin": "127.0.0.1","url": "http://127.0.0.1:9999/get?%24dep_id_list=10%2C11"
}"""
除此之外Get请求还有很多请求参数,如timeout
你可以设置请求时间,如果超过这个时间变自行结束请求,可以利用此判断请求代理的相应效率,避免在某些错误请求上浪费过多的时间
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。