requests库api.py
def get(url, params=None, **kwargs):
return request('get', url, params=params, **kwargs)
def post(url, data=None, json=None, **kwargs):
return request('post', url, data=data, json=json, **kwargs)
def put(url, data=None, **kwargs):
return request('put', url, data=data, **kwargs)
def delete(url, **kwargs):
return request('delete', url, **kwargs)
# 统一调用request方法,将method作为参数传入,数据使用对应参数字段:
def request(method, url, **kwargs):
with sessions.Session() as session:
return session.request(method=method, url=url, **kwargs)
requests库sessions.py
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):
一、常见的接口请求:
1. requests.get(url, params=None, **kwargs)
2. requests.post(url, data=None, json=None, **kwargs)
· data和json根据参数的类型选择
· files:文件类型,通常是二进制文件(with open(file_path,'rb')
3. requests.put(url, data=None, **kwargs)
4. requests.delete(url, **kwargs)

二、接口返回
response 请求返回的主体是<class 'requests.models.Response'> ,需要提取返回内容
response.headers [int]
response.text [str]
response.content [bytes]
response.json() [dict]
response.status_code [requests.structures.CaseInsensitiveDict,可当做字典直接使用]
三、请求封装
def req(**kwargs):
res1 = requests.request(**kwargs)
return res1.text
def ses(**kwargs):
se = requests.session()
res2 = se.request(**kwargs)
return res2.text
print(req(method=method, url=url,headers=headers))
print(ses(method=method, url=url,headers=headers))
&spm=1001.2101.3001.5002&articleId=100920522&d=1&t=3&u=b05f4ae184914289b9aa8ae0f1a9c871)
772

被折叠的 条评论
为什么被折叠?



