本文已参与「新人创作礼」活动,一起开启掘金创作之路。
一、requests是python中调用接口的第三方库,是比较常用的一种。
mac安装requests报错过程:
1:报错原因:pip版本过低,需要升级
2:升级pip版本命令:pip3 install --upgrade pip --user -i pypi.douban.com/simple --trusted-host pypi.douban.com
安装成功截图:
3:安装requests库命令:pip3 install requests --user -i pypi.tuna.tsinghua.edu.cn/simple
安装成功截图:
二、使用requests调用get接口
#导入request库
import requests
#调用接口需要知道哪一些接口信息:URL/接口请求headers/参数
#URL地址
url = 'http://82.156.74.26:9088/pinter/com/getSku'
#请求参数
params = {
'id':1
}
#发起接口调用,赋值resp为响应的整体信息对象
resp = requests.get(url=url,params=params)
#对于服务器的响应信息里我们需要重点得到
#响应状态码
status_code = resp.status_code
print('请求状态码是:{}'.format(status_code))
#响应体的文本格式数据
text = resp.text
print('相应的文本信息是:{}'.format(text))
#响应体的json对象数据
json = resp.json()
print('json数据格式内容为:{}'.format(json))
运行代码:
三、使用requests调用post接口
#导入requests库
import requests
#url地址
url = 'http://82.156.74.26:9088/pinter/com/register'
#请求参数
json = {
"userName":"test",
"password":"1234",
"gender":1,
"phoneNum":"110",
"email":"beihe@163.com",
"address":"Beijing"
}
#调用接口,赋值
resp = requests.post(url=url,json=json)
#查看响应状态码
status_code = resp.status_code
print('响应状态码:{}'.format(status_code))
#查看响应json响应数据
resp_json = resp.json()
print('响应json响应数据:{}'.format(resp_json))
运行代码:
易出错的点:请求参数为json,调用时也为json
四、token关联的案例
A:总结下requests请求参数类型:
- 当接口的请求参数查询参数,使用params
- 当接口的请求参数是表单参数,使用data
- 当接口的请求参数是json格式,使用json
B:token关联实例,post body响应体中的data信息需要同get 中的testfan-token相关联,具体代码如下:
#导入requests
import requests
#URL地址
url = 'http://82.156.74.26:9088/pinter/bank/api/login2'
#参数
data = {
'userName':'admin',
'password':'1234'
}
#调用接口,得到响应信息
resp = requests.post(url=url,data=data)
#查看响应状态码
status_code = resp.status_code
print('响应状态码:{}'.format(status_code))
#获取json数据格式
json = resp.json()
print('json数据格式:{}'.format(json))
print('json数据格式类型:{}'.format(type(json)))
#从登录的响应body体中得到响应的值
#获取json中data的值
#得到某一个key对应的值
json_data = json['data']
print('data的值:{}'.format(json_data))
#查询接口调用
#URL地址
url1 = 'http://82.156.74.26:9088/pinter/bank/api/query2'
#参数
params = {
'userName':'admin'
}
#查询接口的header参数中需要用到headers,并且它的值是登陆接口返回信息中的data字段的值
#headers关联
headers = {
'testfan-token':json_data
}
#调用接口,查看返回信息
resp1 = requests.get(url=url1,params=params,headers=headers)
#查看响应状态码
status_code = resp1.status_code
print('响应状态码:{}'.format(status_code))
#获取json数据格式
json = resp1.json()
print('json数据格式:{}'.format(json))
print('json数据格式类型:{}'.format(type(json)))