其他分享
首页 > 其他分享> > Requests模块的原理以及封装

Requests模块的原理以及封装

作者:互联网

requests的主要方法

def get(url, params=None,**kwargs): 
def post(url, data=None, json=None,**kwargs): 
def put(url, data=None,**kwargs): 
def delete(url,**kwargs): 
def request(method, url,**kwargs):这个是前面四个方法统一调用的方法。
def session():回话,web项目中从登陆和退出就是一个回话。session对象的request方法
def request(self, method, url,params=None, data=None, headers=None, cookies=None, files=None, auth=None, timeout=None, allow_redirects=True, proxies=None, hooks=None, stream=None, verify=None, cert=None, json=None):

 

post请求中data传参和json传参的本质

#字典和json的区别:data是字典,json是json个数,也是字符串
https://www.cnblogs.com/zwx901323/p/16461310.html

 

Postman中Post请求的四种不同的传参方式以及它们对应的请求头

#文件上传:Content-Type:multipart/form-data (files) 
#表单:Content-Type:application/x-www-form-urlencoded (data) 
#文本raw:
        Content-Type:application/json (json)
        Content-Type:text/plain (data)
        Content-Type:application/javascript (data) 
        Content-Type:text/html (data)
        Content-Type:application/xml (data) 
#二进制:Content-Type:application/octrent-stream (files)     

 

requests主要参数

"""
method, 请求方式 
url, 请求路径 
params=None, get请求传参 
data=None, post或put请求传参 
json=None post请求传参 
headers=None, 请求头 
cookies=None, Cookie信息 
files=None, 文件上传 
auth=None, 鉴权 
timeout=None, 超时处理 
allow_redirects=True, 是否允许重定向 
proxies=None, 代理 
hooks=None, 钩子 
stream=None, 文件下载 
verify=None, 证书验证 
cert=None, CA证书
"""

 

 

requests返回对象

res.text       返回文本格式 
res.content    返回bytes类型数据 
res.json()     返回json数据 
res.status_code 返回状态码 
res.reason      返回状态信息 
res.cookies     返回cookie信息 
res.encoding    返回编码格式 
res.headers     返回响应头 
res.request     返回请求的信息和数据

 

封装接口示例

import requests

class Send_method:
    #会话,自定义管理cokei
    session  = requests.session()
    def all_send_request(self, url = "", method = "get", **kwargs):
        print("============测试开始========================")
        res = Send_method.session.request(method, url, **kwargs)
        print(f"url地址:{res.url}")
        print(f"状态码:{res.status_code}")
        print("============测试结束========================")

        return res

if __name__ == '__main__':
    s = Send_method()
    url = "https://www.baidu.com"
    s.all_send_request(url=url, method="get")
"""
============测试开始========================
url地址:https://www.baidu.com/
状态码:200
============测试结束========================
"""

 

标签:None,封装,url,res,json,模块,Requests,data,method
来源: https://www.cnblogs.com/zwx901323/p/16492124.html