requests 请求百度
import requests
url = 'https://www.baidu.com'
response = requests.get(url) # 使用requests库向百度发起一个请求
print(response.text) # 打印接口返回的文本内容,若返回为json数据则打印返回的json
print(response.json()) # 打印返回的json数据,如果返回数据结构不是json则会抛出异常
# 接口请求中常用接口返回的json数据进行断言、数据操作。做重点标记
requests库请求返回内容大致分类
返回数据取值 | 内容 |
---|---|
response.text | 返回文本 |
response.json() | 返回的json数据结构 |
response.status_code | http、https返回状态码 |
response.headers | 响应头 |
response.request.headers | 请求头 |
response.content | 返回的byte数据类型,可用于文件保存 |
requests支持所有https、http方式的请求(get post delete options patch head put)
请求方式 : requests.<get/post/delete…>(*args, **kwargs)
requests发起http常用请求参数简介
参数 | 数据类型 | 内容 |
---|---|---|
url | str | 请求的url路径 |
params | json | 发起get请求时的URL参数使用(?连接的URL参数) |
data | json | 发起POST请求时,请求content-type为form表单时使用该关键字接收传参 |
json | json | 发起POST请求时,请求content-type为application/json时使用该关键字接收传参 |
headers | json | 发送请求时携带的请求信息(如User-Agent浏览器信息,cookie,Authorization) |
verify | bool | 发送https请求时忽略TLS/SSL的警告信息 |
allow_redirects | bool | 请求是否允发起重定向请求 |
接口自动化应用 requests库http请求封装
一般在做接口请求时会保存整个自动化过程中的会话对话,以保持执行一次登录操作后,后续请求都可以使用登录后的cookie和session共享token等
session=requests.session()
import requests
class ApiRequest:
def __init__(self):
pass
def api_request(self, session, method, url, params, data, json, **kwargs):
"""
session: 外部传入的一个seesion会话对象
eg:session = requests.seesion()
method: http请求的请求方法
url: 请求路径
params:请求的url参数
data:post请求的form表单参数
json:post请求的json格式参数
kwargs: 可接收其他requests库支持的请求参数
headers verify、 allow_redirects
"""
response = session.request(method=method, url=url, params=params, data=data, json=json, **kwargs)
# requests.get(*args, **kwargs)=requests.request(method="GET", *args, **kwargs)=session.request(method="GET", *args, **kwargs)
return response # 进一步数据处理会在接口自动化项目中详细说明