一、介绍
requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到, Requests是Python语言的第三方的库,专门用于发送HTTP请求
二、前提
在当前项目安装requests包:pip install requests
三、get请求
1.无参请求:
r = requests.get('http://www.baidu.com')
2.有参请求:
#方式一:参数和路径分开
param = {'key1':'value1','key2':'value2','key3':None}
r = requests.get('http://www.baidu.com',params=param)
#方式二:参数和路径拼接
r = requests.get('http://www.baidu.com?key1=value1&key2=value2&key3=None')
#如果请求参数为字符串类型,可以通过eval()执行一个字符串表达式,并返回表达式的值
param = eval("{'key1':'value1','key2':'value2','key3':None}")
r = requests.get('http://www.baidu.com',params=param)
四、post请求
param = {'key1':'value1','key2':'value2'}
r = requests.post("http://www.baidu.com", data=param)
五、requests的响应
r.status_code 响应状态码
r.heards 响应头
r.cookies 响应cookies
r.text 响应文本
r.json() 响应的字典类型数据
r. encoding 当前编码
r. content 以字节形式(二进制)返回
六、requests扩充
#1:添加等待时间,超过等待时间则报错
requests.get(url,timeout=1)
#2:添加请求头信息
requests.get(url,headers=headers)
#3:添加文件
requests.post(url, files=files)
#4:文件传输
url = 'http://www.baidu.com'
files = {'file': open('report.xls', 'rb')}
r = requests.post(url,files=files)
七、接口关联
- 在第一个接口中设置全局变量,在第二个接口中通过全局变量名引用
import requests,unittest
class TestClass(unittest.TestCase):
def testGet(self):
#通过eval()执行一个字符串表达式,并返回表达式的值
param=eval('{"phone":"13355571803","key":"f32c5a4a9d4356a16af2bdf1739f908e"}')
response=requests.get(url="http://apis.juhe.cn/mobile/get",params=param)
print(response.json())
#设置全局变量
global city
#断言
city=response.json()["result"]["city"]
self.assertEqual(city,"徐州")
def testPost(self):
#post请求
data