当前位置:网站首页>requests库访问接口
requests库访问接口
2022-08-10 16:02:00 【InfoQ】
安装
pip install requests
发送请求
发送 GET 请求
url = '<http://httpbin.org/get>'
resp = requests.get(url )
发送 POST 请求
url = '<http://httpbin.org/post>'
resp = requests.post(url)
指定请求方法
url = '<http://httpbin.org/post>'
resp = requests.request(method='post', url=url)
传输参数
GET 和 POST 都可以传递 URL 参数
params = {"page": 3}
requests.get(url, params=params)
POST 通过 multipart/form-data 传递参数,GET 请求不可以
data = {"username": "abc", "password": "123456"}
requests.post(url, data=data)
POST 通过 json 传递参数,GET 请求不可以
data = {"username": "abc", "password": "123456"}
requests.post(url, json=data)
获取响应
获取文本
resp.text
获取 json
resp.json()
获取二进制数据
resp.content
它们之间的关系
鉴权
session 鉴权
课堂派中就是使用这种方式,登录后获取用户信息不需要手工添加其他的参数了。
def login_with_session():
s = requests.Session()
login_url = 'https://v4.ketangpai.com/UserApi/login'
data = {
"email": "w3.com",
"password": "ad6",
"remember": "0"
}
s.post(login_url, data)
user_url = 'https://v4.ketangpai.com/UserApi/getUserInfo'
r = s.get(user_url)
print(r.text)
也可以手工添加 cookie:
def login():
url = 'https://v4.ketangpai.com/UserApi/login'
data = {
"email": "wcom",
"password": "456",
"remember": "0"
}
r = requests.post(url, data)
sid = r.cookies.get('PHPSESSID')
url = '<https://v4.ketangpai.com/UserApi/getUserInfo>'
r = requests.get(url, cookies={'PHPSESSID': sid})
print(r.text)
token
def login():
url = 'http:///login'
data = {
"mobile_phone": "18111112222",
"pwd": "12345678"
}
r = requests.post(url, json=data, headers=headers)
content = r.json()
member_id = content['data']['id']
token_type = content['data']['token_info']['token_type']
token = content['data']['token_info']['token']
url = f'<http:/{member_id}/info>'
r = requests.get(url, headers=headers)
print(r.text)
扩展
- xml 格式数据请求和响应解析(application/xml)
我是九柄,公众号【 九柄 】,分享软件测试文章、面试、教程资料,欢迎来看看。
边栏推荐
- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
- 5G NR MIB Detailed Explanation
- cmake tips record
- Colocate Join :ClickHouse的一种高性能分布式join查询模型
- WIZnet 物联网设计大赛 - WizFi360大赛延迟通知
- Mastodon:可创建类似推特的开源社交网络服务器
- IPC:Interrupts and Signals
- Pigsty:开箱即用的开源数据库发行版
- NPM - Cannot read properties of null (reading 'pickAlgorithm') 解决方案
- Reids 源码导读
猜你喜欢
随机推荐
关于“算力”,这篇文章值得一看
基础填空以及编程题
5G NR MIB Detailed Explanation
Please check the preparation guide for the 2022 Huawei Developer Competition
怎么截取视频做gif动图?手把手教你视频在线转gif制作
Detailed understanding of anonymous functions and all built-in functions (Part 2)
LeetCode-876. Middle of the Linked List
Detailed understanding of all built-in functions (Part 2)
简述 Mock 接口测试
ExceptionInInitializerError
cmake 小技巧 记录
嵌入式开发:嵌入式基础——使用指针数组映射外设
如何修改gif尺寸?1分钟教你快速修改gif尺寸
cmake record
异常处理的超详细讲解
8月Meetup | “数据调度+分析引擎”解锁企业数字化转型之路
多线程面试指南
不爱生活的段子手不是好设计师|ONES 人物
拆分整数为2的幂次项和 → 理解多重背包问题二进制优化的核心思想
接口测试中,应不应该用数据库