requests

1、requests介绍及简单使用

(1)Requests介绍

流行的接口http(s)请求工具

使用功能强大、简单方便、容易上手

(2)Requests简单使用

安装Requests包

 $ pip3 install requests

简单使用

import requests
requests.get("http://www.baidu.com"

 

Requests请求返回介绍

r.status_code #响应状态

r.content #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩

r.headers #以字典对象存储服务器响应头,若键不存在则返回None

r.json() #Requests中内置的JSON

r.url # 获取url r.encoding # 编码格式

r.cookies # 获取cookie

r.raw #返回原始响应体

r.text #字符串方式的响应体,会自动根据响应头部的字符编码进行

r.raise_for_status() #失败请求(非200响应)抛出异常

 

 

2、Requests方法封装

封装requests get方法

#1、创建封装get方法
def requests_get(url,headers):
  #2、发送requests get请求
  r = requests.get(url,headers = headers)
  #3、获取结果相应内容
  code = r.status_code
  try:
    body = r.json()
  except Exception as e:
    body = r.text
  #4、内容存到字典
  res = dict()
  res["code"] = code
  res["body"] = body
#5、字典返回
  return res

封闭requests post方法

#post方法封装
#1、创建post方法
def requests_post(url,json=None,headers=None):
  #2、发送post请求
  r= requests.post(url,json=json,headers=headers)
  #3、获取结果内容
  code = r.status_code
  try:
    body = r.json()
  except Exception as e:
    body = r.text
    #4、内容存到字典
  res = dict()
  res["code"] = code
  res["body"] = body
  #5、字典返回
  return res

 

封装requests公共方法

  • 增加cookies,headers参数
  • 根据参数method判断get/post请求
def requests_api(self,url,data = None,json=None,headers=None,cookies=None,method="get"):
  if method =="get":
  #get请求
    self.log.debug("发送get请求")
    r = requests.get(url, data = data, json=json, headers=headers,cookies=cookies)
  elif method == "post":
   #post请求
    self.log.debug("发送post请求")
    r = requests.post(url,data = data, json=json, headers=headers,cookies=cookies)
   #2. 重复的内容,复制进来
   #获取结果内容
  code = r.status_code
  try:
    body = r.json()
  except Exception as e:
    body = r.text
  #内容存到字典
  res = dict()
  res["code"] = code
  res["body"] = body
  #字典返回
  return res

 

重构get方法

  • 调用公共方法request_api,
  • 参数:固定参数:url,method
  • 其它参数: **args
#1、定义方法
def get(self,url,**kwargs):
#2、定义参数
#url,json,headers,cookies,method
#3、调用公共方法
  return self.requests_api(url,method="get",**kwargs)

 

重构post方法

  • 调用公共方法request_api,
  • 参数:固定参数:url,method
  • 其它参数: **args
def post(self,url,**kwargs):
#2、定义参数
#url,json,headers,cookies,method
#3、调用公共方法
    return self.requests_api(url,method="post",**kwargs)

 

 

posted @ 2021-05-28 16:23  丝瓜呆呆  阅读(323)  评论(0编辑  收藏  举报