Python request使用方法及问题总结

时间:2021-05-22

一、总结说明

模拟postman访问接口,具体参照七、python接口开发(二)>>三、postman访问接口,本篇文章调用的接口,也是来自于接口开发的源码,阅读本篇文章最好先看下python接口是怎样开发的

模拟get方式访问:res = requests.get(url,params=data,headers = headers)

第一种方式:res = requests.get(url, params=data, headers = headers)

第二种方式:res = requests.get(url, data=data, headers = headers)

注意:

1.url格式入参只支持第一种方式访问(params=data),json格式入参,只支持第二种方式(data=data)访问,
form-data格式入参可以使用第一种与第二种方式访问。

2.不管是那种格式的入参,data入参格式都是{“key”:“vaue”,“key1”:“vaue1"},注意参数最好用 " 而不是 ' 。

3.如果是url与form-data入参,data参数必须为字典类型,如果json入参,data必须为字符类型,字典转字符方法如下:data =json.dumps(data,ensure_ascii=False);

4.参数headers必须为字典类型,字符转字典方法如下:json.loads(headers),判断是否是字典方法如:isinstance(data,dict)
模拟post方式访问:
第一种方式:res = requests.post(url, params=data, headers = headers)
第二种方式:res = requests.post(url, data=data, headers = headers)

注意:

1.url格式入参只支持第一种方式访问(params=data),json格式入参,只支持第二种方式(data=data)访问,
form-data格式入参可以使用第一种与第二种方式访问。

2.不管是那种格式的入参,data入参格式都是{“key”:“vaue”,“key1”:“vaue1"},注意参数最好用 " 而不是 ' 。

3.如果是url与form-data入参,data参数必须为字典类型,如果json入参,data必须为字符类型,字典转字符方法如下:data =json.dumps(data,ensure_ascii=False);

4.参数headers必须为字典类型,字符转字典方法如下:json.loads(headers),判断是否是字典方法如:isinstance(data,dict)
常用响应方法

  • res.text:查看响应内容,返回的是Unicode格式的数据
  • res.content:查看响应内容,返回的字节流数据(主要用于存储图片)
  • res.url:查看完整访问url地址
  • res.encoding:查看响应头部字符编码
  • res.status_code:查看响应码

session与cookies

cookies操作步骤:
1.访问:res = requests.get(url)
2.返回cookie对象:cookiejar = res.cookies
3.转为字典:cookiedict = requests.utils.dict_from_cookiejar(cookiejar)

session操作步骤:

1. 创建session对象:ssion = requests.session()
2. 设置 headers:headers = {"key": "vaule"}
3. 设置登录入参:{"loginName":"sss", "userPass":"sss"}
4. 发送附带用户名和密码的请求,并获取登录后的Cookie值,保存至sesion:ssion.post(url, data = data,headers=headers)
5. 直接访问需要登录的页面:ssion.get("https://"),报错如下:

AttributeError: 'function' object has no attribute 'get'

原因:1.代码错误;2.变量名与系统(包括扩展库或者保留字)的重复

解决方法:本例是代码错误,request改为requests

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章