川石教育
全国咨询热线:136-9172-9932
  1. 首页 > 资讯与干货 > IT资讯

Requests请求参数和响应内容

作者:川石学院 日期:2021-12-31 17:37:53 点击数:

一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“Requests请求参数和响应内容”。

Requests请求参数和响应内容(图1)  

  1. requests.request-请求参数

  requests.request (method, url, **kwargs):

  •   method:请求方法--get,post,put,delete等

  •   url: 请求路径

  •   params:get请求参数,一般字典格式

  •   data:post请求参数,字典格式

  •   json:post请求参数,字典格式

  •   headers:请求的header,字典类型

  •   cookies:请求的cookie,字典类型

  •   files:上传的文件,字典类型

  •   auth: 进行HTTP认证,元组

  •   verify:是否验证server的TSL证书,布尔值

  •   timeout:设定超时时间,数值

  •   allow_redirects:是否运行重定向,布尔值

  •   stream:响应内容是否直接下载,布尔值

  #登录ecshop

  url = 'http://localhost/ecshop/user.php'

  data = {'username':'user001','password':'user001','act':'act_login'}

  #re = requests.post(url,data)

  re = requests.request('post',url=url,data=data)

  print(re.content.decode('utf-8'))

  2. requests-get请求参数

  get请求特点: 请求参数在url中或params中均可。

  •   response = requests.get(url)

  •   response = requests.get(url, params=None)

  •   response = requests.get(url, params=None, **kwargs)

  # #get 价格查询接口

  # #方法一:请求参数直接放在URL中

  # url = 'http://localhost/ecshop/goods.php?act=price&id=55&attr=&number=1'

  # res1 = requests.get(url)

  # print(res1.content.decode('unicode-escape'))

  # #json()函数返回一个字典

  # result = res1.json() #如果返回的数据是json格式,可以使用json方法获取响应体,然后获取对应的值

  # print(type(result))

  # print(result['err_msg'])

  # print(result['result'])

  # print(result['qty'])

  #

  # #方法二:get请求参数放到params参数中

  # url = 'http://localhost/ecshop/goods.php'

  # #?act=price&id=55&attr=&number=2&160248987409898

  # params = {

  # "act" : "price",

  # "id":55,

  # "attr" : None,

  # "number" : 2,

  # 160248987409898:None

  # }

  #

  # res1 = requests.get(url,params=params)

  # if res1.status_code == 200:

  # print(res1.json()["result"])

  3. requests-post请求参数

  post请求特点: 请求参数在body中,参数为data和json。

  •   response = requests.post(url,data=data)

  •   response = requests.get(url, json=json)

  #post方法:登录

  url = 'http://localhost/ecshop/user.php'

  param = {

  "username":'user001',

  "password":'user001',

  "act":"act_login",

  "submit":None

  }

  res1 = requests.post(url,data=param)

  if res1.status_code == 200:

  print(res1.text)

  else:

  print(res1.status_code)

  4. requests—接收响应,中文乱码处理

  response = requests.get(url, params=None, **kwargs) #获取响应对象

  响应对象的属性和方法:

  •   response.status_code #获取响应结果码

  •   response.encoding #获取响应的编码格式

  •   response.headers #获取响应头

  •   response.content #获取二进制形式响应内容

  •   response.text #获取字符串形式响应内容

  •   response.json() #获取json格式响应内容

  •   response.url #获取请求的url

  代码示例:

  import requests

  # url = "http://www.baidu.com"

  # res1 = requests.get(url)

  # print('URL:',res1.url)

  # print('响应码:',res1.status_code)

  # print('响应头:',res1.headers)

  # print('响应体:',res1.text)

  # #中文乱码的解决

  # #方法一:通过apparent_encoding指定解码时的类型

  # print(res1.encoding) #根据客户端信息,采取解码格式 ISO-8859-1

  # print(res1.apparent_encoding) #根据内容推断解码格式 utf-8

  # res1.encoding = res1.apparent_encoding

  # print(res1.text)

  #

  # #方法二:在字节码的基础上,直接对内容做解码处理

  # print(res1.content) #content是字节码内容

  # print(res1.content.decode('utf-8'))

  # #商品总价查询接口

  # url = 'http://localhost/ecshop/goods.php?act=price&id=55&attr=&number=2&160248987409898'

  # res1 = requests.get(url)

  # print(res1.encoding)

  # print(res1.apparent_encoding) #推测的编码不一定正确

  # print(res1.content.decode('unicode-escape'))

今天关于“Requests请求参数和响应内容”就学习到这里了,每个工作日小编都会更新一个小知识,希望大家多多关注我们,一起来学习喔!


相关文章
  • 亚马逊运营成功转行软件测试,薪资13K表示很满意!2021-12-31 17:37:53
  • 西安川石的兰朋友喊你来当他的学弟学妹啦!2021-12-31 17:37:53
  • 国外的月亮也不一定比国内测试猿的年薪美~2021-12-31 17:37:53
  • 建筑工程专业朱同学成功转行为软件测试人!2021-12-31 17:37:53
  • 财务管理专业转行软件测试月薪甩会计几条街!2021-12-31 17:37:53
  • 只有技术沉淀才能成功上岸,深圳就业薪资13K!2021-12-31 17:37:53
  • 薪资11K!实现自我价值,从掌握一门IT技术开始...2021-12-31 17:37:53
  • 文科生转行软件测试照样拿下高薪15K!2021-12-31 17:37:53
  • 恭喜罗同学喜提19.5K,成功入行软件测试!2021-12-31 17:37:53
  • 毕业1年,迷茫的他最终选择转行软件测试2021-12-31 17:37:53