python接口自动化--get请求

Get请求有2种情况:

  • 第一种是一个纯url地址,没有问号,也没有参数

  

 1 import requests
 2 import urllib3
 3 #忽略警告
 4 urllib3.disable_warnings()
 5 # InsecureRequestWarning
 6 
 7 #SSLError,增加参数verify=False
 8 res = requests.get("http://api.github.com/events",verify=False)
 9 #json格式
10 print(res.json())


 

 

 

  • 第二种是带问号和参数,增加params进行传参

  

 1 import requests
 2 import urllib3
 3 urllib3.disable_warnings()
 4 
 5 par = {
 6     "key1":"value1",
 7     "key2":"value2"
 8 }
 9 
10 r = requests.get("http://httpbin.org/get",params=par)
11 print(r.json())#json格式 dict
12 print(r.text)#文本格式 str
13 print(r.encoding)#查看编码格式
14 print(r.content)#以字节方式打印响应体

   

  • 增加headers,通过抓包看出,

  • User-Agent:python-requests/2.20.0,所以需要增加头部,伪造浏览器发请求

 1 import requests
 2 import urllib3
 3 urllib3.disable_warnings()
 4 
 5 
 6 par = {
 7     "key1":"value1",
 8     "key2":"value2"
 9 }
10 
11 h ={
12     #伪造请求,模拟从浏览器发出请求
13     "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0",
14     #"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
15     # "Accept-Language":"zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
16     # "Accept-Encoding": "gzip, deflate",
17     # "Connection": "keep-alive",
18     "Cache-Control": "max-age=0",
19 }
20 #通过抓包只传User-Agent,和Cache-Control
21 
22 
23 
24 r = requests.get("http://httpbin.org/get",params=par,headers=h)
25 print(r.json())
  • response

  response的返回内容还有其它更多信息

  -- 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响应)抛出异常

 

posted @ 2019-07-30 22:41  莫使娇躯空对月  阅读(251)  评论(0编辑  收藏  举报