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

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

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

一、GET

 import requests
 import json

 url = "http://v.juhe.cn/laohuangli/d"
 para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}
 header ={}

 r = requests.get(url,params=para,headers= header,)
 #verify=True适用于服务端的ssl证书验证,verify=False为关闭ssl验证
 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

 import requests
 import json

 url = "http://v.juhe.cn/laohuangli/d"
 para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}
 header ={}

 r = requests.post(url,data=para,headers= header)

 print('get请求获取的响应结果json类型',r.text)
 print("get请求获取响应状态码",r.status_code)
 print("get请求获取响应头",r.headers['Content-Type'])

 #响应的json数据转换为可被python识别的数据类型
 json_r = r.json()
 print(json_r)

#json

 import requests
 import json

 url = "http://v.juhe.cn/laohuangli/d"
 para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}
 header ={}
 #python数据类型转换为json类型(json.dumps())
 para = json.dumps(para)
 r = requests.post(url,data=para,headers= header)

 print('get请求获取的响应结果json类型',r.text)
 print("get请求获取响应状态码",r.status_code)
 print("get请求获取响应头",r.headers['Content-Type'])

 #响应的json数据转换为可被python识别的数据类型
 json_r = r.json()
 print(json_r)

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

 def get(url,para,headers):
     try:
         r = requests.get(url,params=para,headers=headers)
         print("获取返回的状态码",r.status_code)
         json_r = r.json()
         print("json类型转化成python数据类型",json_r)
     except BaseException as e:
         print("请求失败!",str(e))
 def post(url,para,headers):
     try:
         r = requests.post(url,data=para,headers=headers)
         print("获取返回的状态码",r.status_code)
         json_r = r.json()
         print("json类型转化成python数据类型",json_r)
     except BaseException as e:
         print("请求失败!",str(e))
 def post_json(url,para,headers):
     try:
         data = para
         data = json.dumps(data)   #python数据类型转化为json数据类型
         r = requests.post(url,data=data,headers=headers)
         print("获取返回的状态码",r.status_code)
         json_r = r.json()
         print("json转换为python数据类型:",json_r)
     except BaseException as e:
         print("请求失败!",str(e))

 url = "http://v.juhe.cn/laohuangli/d"
 para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}
 headers ={}

 get(url,para,headers)
 post(url,para,headers)
 post_json(url,para,headers)

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

 class Webrequests:
     def get(self,url,para,headers):
         try:
             r = requests.get(url,params=para,headers=headers)
             print("获取返回的状态码",r.status_code)
             json_r = r.json()
             print("json类型转化成python数据类型",json_r)
         except BaseException as e:
             print("请求失败!",str(e))
     def post(self,url,para,headers):
         try:
             r = requests.post(url,data=para,headers=headers)
             print("获取返回的状态码",r.status_code)
             json_r = r.json()
             print("json类型转化成python数据类型",json_r)
         except BaseException as e:
             print("请求失败!",str(e))
     def post_json(self,url,para,headers):
         try:
             data = para
             data = json.dumps(data)   #python数据类型转化为json数据类型
             r = requests.post(url,data=data,headers=headers)
             print("获取返回的状态码",r.status_code)
             json_r = r.json()
             print("json类型转化成python数据类型",json_r)
         except BaseException as e:
             print("请求失败!",str(e))

 url = "http://v.juhe.cn/laohuangli/d"
 para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}
 headers ={}

 q = Webrequests()

 q.get(url,para,headers)
 q.post(url,para,headers)
 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. R语言入门学习笔记 - 对R软件的认识

    一.R软件 1.安装R:自行百度☺ 2.R控制台(R Console)和R程序脚本: 打开R软件,就会直接打开控制台,控制台可以显示程序运行的结果.错误提示等信息,也可以直接输入想要执行的操作并立即返 ...

  2. iOS学习笔记(4) — UITableView的 重用机制

    iOS学习笔记(4) — UITableView的 重用机制 UITableView中的cell是动态的,在使用过程中,系统会根据屏幕的高度(480)和每个cell的高度计算屏幕中需要显示的cell的 ...

  3. Python 不同对象比較大小

    万恶的源泉: Fireboo的疑问(当然 lambda 本身写的就有问题): >>> filter( lambda x: x > 2, [ 1, [ 1, 2, 3 ], 2, ...

  4. 浅析java(多方面解读)

    昨天我简单的说了一下我的编程学习之路.假设你热爱编程.而不是仅为了赚钱,我想我的经历或许会给你带来一定的启示,假设你还没有看.请先慢慢读完我的编程学习之路,您肯定会有还有一番体会的.. 好了.废话不多 ...

  5. JS重名解决方案

    一个页面如果引用多个JS,或者像ASP.NET MVC,一个视图包含多个子视图,每个子视图有自己的JS,那么变量.函数的重名冲突机会将会大增. 如何解决? 这里有一个方案: 1.用类来封装子页的JS代 ...

  6. 【bzoj4592】[Shoi2015]脑洞治疗仪

    由于脑洞的序列不会改变,考虑用线段树维护区间内sum,左边0的个数,右边0的个数,区间内最大脑洞.对于查询l~r最大脑洞可以将l~r分成logn个区间,总复杂度O(nlogn). #include&l ...

  7. 【T^T 1871】获取敌情

    获取敌情 在公元4484年,人类展开了对外界星球的征途和探索,但也不可避免的展开了和外星人之间的战争.偶然的机遇之下,美国联邦调查局截获了一串来自外星球的信息.但不知道有什么特殊的意义.所以就委托你, ...

  8. T3 最短路 line

    T3 最短路 line [问题描述] 给定一个 n 个点,m 条边的有向图,每个点有一个权值 a[i],表示这个点要到达多少次,1 为起始点,从 1 到 i 的距离为 d[i],请你输出∑a[i]*d ...

  9. SQLAlchemy框架---ORM思想

  10. ModuleNotFoundError: No module named 'urlparse'

    这是2.x转3.x问题 2.x写法: from urlparse import urlparse   3.x写法: from urllib.parse import urlparse 问题解决.