模拟发送GET请求
前置条件:导入requests库
一、发送不带参数的get请求
代码如下:
以百度首页为例
import requests # 发送get请求 response = requests.get(url="http://www.baidu.com") print(response.content.decode("utf-8")) # 以utf-8的编码输出内容
二、发送带参数的get请求
发送带参数的get请求有几种方式
方式一:参数在URL中
代码如下:
以百度首页为例
import requests
# 发送带参数的get请求
# 方式一:参数在URL中
# http 协议,www.baidu.com 主机号,/s 请求地址,wd=猫 参数
host = "http://www.baidu.com/s?wd=猫"
# 因为百度服务器会对头部信息做检查所以需要添加请求头
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'}
response = requests.get(url=host,headers=headers)
print(response.content.decode("utf-8"))
方式二:参数在字典中
代码如下:
以百度首页为例
import requests
# 方式二:参数在字典中
host = "http://www.baidu.com/s"
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'}
data = {'wd':'金钱豹'} # 参数在字典中
response = requests.get(url=host,headers=headers,params=data)
print(response.content.decode('utf-8'))
获取响应数据的基本信息
代码如下:
以百度首页为例
import requests
# 发送get请求
response = requests.get(url="http://www.baidu.com")
# 获取响应的基本信息
print( "状态码:", response.status_code )
print( "请求URL:",response.url )
print( "头部信息:", response.headers )
print( "cookie信息:", response.cookies )
print("字节形式信息:",response.content )
print("文本信息:",response.text)
print("编码格式:",response.encoding)
封装get请求
代码示例:
# 封装get请求
def send_get(url):
response = requests.get(url=url)
return response
print(send_get("https://www.jd.com/").content.decode("utf-8"))
封装main方法
代码示例:
# 封装main方法
def run_main(method,url,data=None,json_info=None):
response = None
if method == "GET":
response = send_get(url,data)
elif method == "POST":
response = send_post(url,data,json_info)
else:
print("参数错误")
response = None
return response
print(run_main("GET","https://www.jd.com/").content.decode("utf-8"))
封装测试类
代码示例:
# 将写好的get、post、run_mian方法做成类
import requests
class run_test:
session_obj = requests.session()
def __init__(self,method,url,params=None,data=None,headers=None):
self.method = method
self.url = url
self.params = params
self.data = data
self.headers = headers
def send_get(self):
res = run_test.session_obj.get(url=self.url,params=self.params,headers=self.headers)
return res
def send_post(self):
res = run_test.session_obj.post(url=self.url,params=self.params,
data=self.data,headers=self.headers)
return res
def run_main(self):
if self.method == "GET":
res = self.send_get()
elif self.method == "POST":
res = self.send_post()
else:
print("请求方式错误,请检查!")
res = None
return res
if __name__ == "__main__":
method = "GET"
url = "https://www.jd.com"
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"}
test_obj = run_test(method=method,url=url,headers=headers)
response = test_obj.run_main()
print(response.content.decode("utf-8"))
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
-
文档获取方式:
-
加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)
这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取