zoukankan      html  css  js  c++  java
  • 利用flask mock接口

    安装 flask:

      pip install flask

    简单请求demo

    后端接收脚本

    # 利用flask 编写一个简单的接口
    from flask import Flask

    # 导入 request 处理请求 requests是用于发送请求的
    from flask import request


    # 实例化一个web服务对象
    app = Flask(__name__)


    # 创建一个方法来处理请求 不指定请求方法的时候 默认接收get请求
    # 定义一个路由 -- 访问服务的根目录就可以得到结果
    @app.route('/')
    def hello():

    return '<h1>hello flask</h1>'



    @app.route('/post',methods=['POST'])
    def test_post():

    # 提示数据 键值对格式
    d1 = request.form['d1']
    d2 = request.form['d2']
    return d1 + d2


    if __name__ == '__main__':

    # 运行并确定服务运行的ip和端口
    app.run('127.0.0.1','9090')

    请求脚本

    # 理由requests发送请求给服务端
    import requests

    # 定义post 发送数据
    body = {
    'd1': 'hello,',
    'd2': 'flask'
    }

    # 发送post请求 加入请求体
    res = requests.post('http://127.0.0.1:9090/post',data=body)

    print(res.text)

    Demo

    请求脚本

    import requests


    body = {
    "out_trade_no": "20150320010101001",
    "auth_code": "287634438256643941",
    "buyer_id": "2088202954065786",
    "seller_id": "2088102146225135",
    "subject": "Iphone6 16G",
    "total_amount": "88.88,"
    }

    # 请求头 键:Content-Type 值:application/json
    # 请求头因为是json 格式 所以就不需要指定请求头 直接json赋值

    # 请求路径:
    res = requests.post('http://127.0.0.1:9090/trade/purchase', json=body)

    # 打印响应 如果响应是json格式的话需要转化一下
    print(res.json())

    后端接收脚本

    # 利用flask 编写一个简单的接口
    from flask import Flask

    # 导入 request 处理请求 requests是用于发送请求的
    from flask import request
    import json
    import time
    import random

    # 实例化一个web服务对象
    app = Flask(__name__)


    # 处理极简交易接口
    @app.route('/trade/purchase',methods=['POST'])
    def purchase():

    # 拿到客户端返回的数据
    # 获取json格式 request.get_data():返回的是二进制格式 所以需要 json 来转化一下
    res = json.loads(request.get_data())

    # 提取数据
    out_trade_no = res['out_trade_no']

    # 获取授权码
    auth_code = res['auth_code']


    data = {
    'ceod': '400004',
    'msg': 'business failed',
    'sub_code': 'ACQ.TRADE_HAS_SUCCESS',
    'sub_msg': '交易已被支付',
    'trade_no': '306006251561561878976518897120',
    'out_trade_no': '333150320010101001'
    }
    # 把out_trade_no 改成客户端发送过来的数据
    # 自动把我们的响应修改成客户端发送过来的订单号 有的时候订单号是动态生成的
    data['out_trade_no'] = out_trade_no

    # 生成订单时间
    data['trade_no'] = time.strftime('%Y%m%d%H%M%S')+str(random.random()).replace('.0','')

    # 验证请求码
    if auth_code != '287634438256643941':
    return {'code': '500', 'msg': '请求码验证失败'}

    return data



    if __name__ == '__main__':

    # 运行并确定服务运行的ip和端口
    app.run('127.0.0.1','9090')

     

  • 相关阅读:
    关于Java中System.currentTimeMillis和System.nanoTime的错误认识
    多线程以外
    vim 小技巧
    Virtual Box HostOnly网络模式配置
    How 30 Minutes a Day Can Increase Your Intelligence
    YUM命令使用
    Hash算法及其应用
    jetty + apache httpd 反向代理配置
    使用SCTP优化网络
    .NET书籍推荐
  • 原文地址:https://www.cnblogs.com/sunzzc/p/13416348.html
Copyright © 2011-2022 走看看