基于http协议,最常用的是GET和POST两种方法。

接口文档需要包含哪些信息:

接口名称
接口功能
接口地址
支持格式 json/xml
请求方式
请求示例
请求参数(是否必填、数据类型、传递参数格式)
返回参数说明
以典型的(一两个)参数做为判断是否请求通过(重点是看响应的信息判断)

一、GET

  1. import requests
  2. import json
  3.  
  4. url = "http://v.juhe.cn/laohuangli/d"
  5. para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}
  6. header ={}
  7.  
  8. r = requests.get(url,params=para,headers= header,)
  9. #verify=True适用于服务端的ssl证书验证,verify=False为关闭ssl验证
  1. print( print( print( json_r = print(json_r)

二、POST

post请求有两种请求格式:
1、key-value的格式'Content-Type':'application/x-www-form-urlencoded'
2、标准json的格式:'Content-Type':'application/json'

#key-value

  1. import requests
  2. import json
  3.  
  4. url = "http://v.juhe.cn/laohuangli/d"
  5. para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}
  6. header ={}
  7.  
  8. r = requests.post(url,data=para,headers= header)
  9.  
  10. print('get请求获取的响应结果json类型',r.text)
  11. print("get请求获取响应状态码",r.status_code)
  12. print("get请求获取响应头",r.headers['Content-Type'])
  13.  
  14. #响应的json数据转换为可被python识别的数据类型
  15. json_r = r.json()
  16. print(json_r)

#json

  1. import requests
  2. import json
  3.  
  4. url = "http://v.juhe.cn/laohuangli/d"
  5. para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}
  6. header ={}
  7. #python数据类型转换为json类型(json.dumps())
  8. para = json.dumps(para)
  9. r = requests.post(url,data=para,headers= header)
  10.  
  11. print('get请求获取的响应结果json类型',r.text)
  12. print("get请求获取响应状态码",r.status_code)
  13. print("get请求获取响应头",r.headers['Content-Type'])
  14.  
  15. #响应的json数据转换为可被python识别的数据类型
  16. json_r = r.json()
  17. print(json_r)

三、把所有的请求封装在函数中

  1. def get(url,para,headers):
  2. try:
  3. r = requests.get(url,params=para,headers=headers)
  4. print("获取返回的状态码",r.status_code)
  5. json_r = r.json()
  6. print("json类型转化成python数据类型",json_r)
  7. except BaseException as e:
  8. print("请求失败!",str(e))
  9. def post(url,para,headers):
  10. try:
  11. r = requests.post(url,data=para,headers=headers)
  12. print("获取返回的状态码",r.status_code)
  13. json_r = r.json()
  14. print("json类型转化成python数据类型",json_r)
  15. except BaseException as e:
  16. print("请求失败!",str(e))
  17. def post_json(url,para,headers):
  18. try:
  19. data = para
  20. data = json.dumps(data) #python数据类型转化为json数据类型
  21. r = requests.post(url,data=data,headers=headers)
  22. print("获取返回的状态码",r.status_code)
  23. json_r = r.json()
  24. print("json转换为python数据类型:",json_r)
  25. except BaseException as e:
  26. print("请求失败!",str(e))
  27.  
  28. url = "http://v.juhe.cn/laohuangli/d"
  29. para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}
  30. headers ={}
  31.  
  32. get(url,para,headers)
  33. post(url,para,headers)
  34. post_json(url,para,headers)

四、把所有请求封装在一个对象里

  1. class Webrequests:
  2. def get(self,url,para,headers):
  3. try:
  4. r = requests.get(url,params=para,headers=headers)
  5. print("获取返回的状态码",r.status_code)
  6. json_r = r.json()
  7. print("json类型转化成python数据类型",json_r)
  8. except BaseException as e:
  9. print("请求失败!",str(e))
  10. def post(self,url,para,headers):
  11. try:
  12. r = requests.post(url,data=para,headers=headers)
  13. print("获取返回的状态码",r.status_code)
  14. json_r = r.json()
  15. print("json类型转化成python数据类型",json_r)
  16. except BaseException as e:
  17. print("请求失败!",str(e))
  18. def post_json(self,url,para,headers):
  19. try:
  20. data = para
  21. data = json.dumps(data) #python数据类型转化为json数据类型
  22. r = requests.post(url,data=data,headers=headers)
  23. print("获取返回的状态码",r.status_code)
  24. json_r = r.json()
  25. print("json类型转化成python数据类型",json_r)
  26. except BaseException as e:
  27. print("请求失败!",str(e))
  28.  
  29. url = "http://v.juhe.cn/laohuangli/d"
  30. para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}
  31. headers ={}
  32.  
  33. q = Webrequests()
  34.  
  35. q.get(url,para,headers)
  36. q.post(url,para,headers)
  37. q.post_json(url,para,headers)

python自动化--接口请求及封装的更多相关文章

  1. 接口测试-Java代码实现接口请求并封装

    前言:在接口测试和Java开发中对接口请求方法进行封装都非常有必要,无论是在我们接口测试的时候还是在开发自测,以及调用某些第三方接口时,都能为我们调用和调试接口提供便捷: Java实现对http请求的 ...

  2. appium+python自动化24-滑动方法封装(swipe)

    swipe介绍 1.查看源码语法,起点和终点四个坐标参数,duration是滑动屏幕持续的时间,时间越短速度越快.默认为None可不填,一般设置500-1000毫秒比较合适. swipe(self, ...

  3. python监控接口请求

    #!/usr/bin/env python #coding=utf8 import time,os,sched,urllib,httplib import smtplib import string ...

  4. appium+python自动化24-滑动方法封装(swipe)【转载】

    swipe介绍 1.查看源码语法,起点和终点四个坐标参数,duration是滑动屏幕持续的时间,时间越短速度越快.默认为None可不填,一般设置500-1000毫秒比较合适. swipe(self, ...

  5. Appium+python自动化

    名称 链接地址 Appium+python自动化8-Appium Python API(上) http://mp.weixin.qq.com/s/WvpT5oRrYY22avI95FuypQ Appi ...

  6. vue-ajax/axios请求函数封装: axios+promise

    项目文件目录/src/api ajax.js /** * ajax 请求函数模块 * 返回值为promise对象 */ import axios from 'axios' export default ...

  7. python接口自动化根据请求接口类型进行封装

    根据不同的请求类型(GET/POST)进行接口请求封装 import requests import json class RunMain: def __init__(self, url, metho ...

  8. python+pytest接口自动化(11)-测试函数、测试类/测试方法的封装

    前言 在python+pytest 接口自动化系列中,我们之前的文章基本都没有将代码进行封装,但实际编写自动化测试脚本中,我们都需要将测试代码进行封装,才能被测试框架识别执行. 例如单个接口的请求代码 ...

  9. python+pytest接口自动化(4)-requests发送get请求

    python中用于请求http接口的有自带的urllib和第三方库requests,但 urllib 写法稍微有点繁琐,所以在进行接口自动化测试过程中,一般使用更为简洁且功能强大的 requests ...

随机推荐

  1. golang 查询数据库操作

    SQL.Open only creates the DB object, but dies not open any connections to the database. If you want ...

  2. day4-hdfs的核心工作原理\写数据流程 \读数据流程

    namenode元数据管理要点 1.什么是元数据? hdfs的目录结构及每一个文件的块信息(块的id,块的副本数量,块的存放位置<datanode>) 2.元数据由谁负责管理? namen ...

  3. iOS8使用TouchID

    iOS8新增了LocalAuthentication框架,用于TouchID的授权使用.亲測,眼下须要用户的设备支持指纹识别并已设置锁屏,并且实际測试过程中反馈比較慢.不能直接跟第三方账号passwo ...

  4. Go语言核心之美 3.2-slice切片

    Slice(切片)是长度可变的元素序列(与之相应,上一节中的数组是不可变的),每一个元素都有同样的类型.slice类型写作[]T.T是元素类型.slice和数组写法非常像,差别在于slice没有指定长 ...

  5. java.io.IOException: read failed, socket might closed or timeout, read ret: -1

    近期项目中连接蓝牙之后接收蓝牙设备发出的指令功能,在连接设备之后,创建RfcommSocket连接时候报java.io.IOException: read failed, socket might c ...

  6. 2013级C++第12周(春)项目——成员的訪问属性、多重继承

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 第一部分 程序阅读 1.阅读程序.分析类中成员 ...

  7. 使用逆向工程生成mybatis的Mapper文件

    之前有写过一篇博客: 使用MyBatis Generator自动生成MyBatis的代码链接:http://www.cnblogs.com/klslb/p/6908535.html 这个太麻烦了,而且 ...

  8. 洛谷 P1525 关押罪犯==codevs 1069 关押罪犯[NOIP 2010]

    P1525 关押罪犯 513通过 1.4K提交 题目提供者该用户不存在 标签图论并查集NOIp提高组2010 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 咳咳.竟MLE了. 囧.运行时错误 ...

  9. Nginx入门详解文档

    1 文章内容 掌握nginx+tomcat反向代理的使用方法. 掌握nginx作为负载均衡器的使用方法. 掌握nginx实现web缓存方法. 2 nginx介绍 2.1 什么是nginx Nginx是 ...

  10. 单独编译framework【转】

    本文转载自:http://blog.csdn.net/u011168565/article/details/53782325 参考文章: http://bbs.csdn.net/topics/3701 ...