requests学习

本文详细介绍了Python的requests库,包括GET和POST请求的实现,以及如何处理响应数据。通过实例展示了如何进行登录操作并获取接口数据。此外,还提供了一个封装好的请求函数,并总结了data和json参数在不同请求类型中的用途。
摘要由CSDN通过智能技术生成

1、先安装requests:pip install requests

2、编写一个get请求

import requests
res=requests.get("https://www.baidu.com/")

#响应对象
print(res)

#获取响应状态码
print(res.status_code)

#获取响应数据
print(res.text)   #返回的是字符串(<class 'str'>),一般用来获取文本
print(res.content)  #返回的是bytes类型(<class 'bytes'>),也就是二进制数据;用来获取图片、音频、视频等
#print(res.json())   #返回的是字典(<class 'dict'>),如果返回的数据不是json格式,那么使用res.json()会报错;如上url返回的数据格式不是json格式,所以会报错

3、编写一个post请求

# """测试post请求"""
import requests
data_info={
    "username": "lemon1",
    "password": "123456"
}
# res=requests.post("http://api.keyou.site:8000/user/login/",data=data_info)
res=requests.post("http://api.keyou.site:8000/user/login/",json=data_info)
print(res.status_code)
print(res.text)
print(res.content)
print(res.json())

4、综合使用get请求与post请求

"""
登录接口:http://api.keyou.site:8000/user/login/
获取接口数据:http://api.keyou.site:8000/interfaces/

"""

import requests

url="http://api.keyou.site:8000/user/login/"
data_info={
    "username":"lemon1",
    "password":"123456"
}
res=requests.post(url,json=data_info)  #发送post请求
response_data=res.json()  #获取响应数据
token=response_data["token"] #提取响应数据的token

url="http://api.keyou.site:8000/interfaces/"
headers={
    "Authorization":"JWT {}".format(token)       #将获取的token保存在headers里
}

res1=requests.get(url,headers=headers)   #传递url和token,获取接口数据
print(res1.json())

5、封装requests

"""
编写请求封装函数
"""
import requests
import logging
def visit(url,method="get",params=None,data=None,json=None,**kwargs):
    res=requests.request(url=url,method=method,params=params,data=data,json=json,**kwargs)
    try:
        return res.json()
    except Exception as e:
        logging.error("返回数据不是 json 格式:{}".format(e))
        return None


#调试程序
if __name__=="__main__":
    url="http://api.keyou.site:8000/user/login/"
    data={"username":"lemon1",
    "password":"123456"}
    useaaa=visit(url,method="post",json=data)
    print(useaaa)

    token=useaaa["token"]
    url1="http://api.keyou.site:8000/interfaces/"
    header={ "Authorization": "JWT {}".format(token)}
    data=visit(url1,method="get",headers=header)
    print(data)

6、总结:

函数def post(url, data=None, json=None, **kwargs)中
data表示form 表单格式数据,content-type 设置成 form-data
json表示json,content-type 设置成 application / json
看接口支持什么数据类型,具体看接口文档

 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值