charles+flask实现动态mock

2018-08-29  本文已影响76人  6c0fe9142f09

charles+flask实现动态mock

直入正题

工作遇到需要测试投放的广告效果,广告效果图是这样的


广告图

想把广告图换成自己公司的图片上只要通过charles改改改就完了,但是怎么动态的改改改呢?

1.charles抓包设置
步骤1 步骤2 步骤3 步骤4:设置手机代理,ip是电脑ip
2.设置map remote

看到这很多同学可能就明白了,这不就是以前网络安全课或者在书上看到的黑客常用的攻击手段吗,没错,咱们今天体验一把

3.书写中转器
pip install flask
#-*-coding:UTF-8-*-
import flask
import requests
import json
def replace_txt(json_data):
    data_id = ""
    for dic in json_data["data"]:
        data_id = dic

    list = json_data.get("data").get(data_id).get('list')
    for ad in list:
        print(ad)
        ad['txt'] = "网易新闻"
        ad['desc'] = "人体75%都是水,喝够水的人生到底有多赚?"
        ad['img']="http://cms-bucket.nosdn.127.net/fa04e6870fd647c8b49cdf4719247a6b20180531114309.jpeg?imageView&enlarge=1&thumbnail=1200y800&quality=85"
        ad['img2']="http://pgdt.gtimg.cn/gdt/0/9c59c1ca41aea62d77328526c4ef5eb9.PNG/0"
        ad['customized_invoke_url']="newsapp://doc/DJ4OSETE0511A0AV?spsAdDocId=DJ4OSETE0511A0AV&spsPrice=0&spsPicId=http%3A%2F%2Fcms-bucket.nosdn.127.net%2Ffa04e6870fd647c8b49cdf4719247a6b20180531114309.jpeg%3FimageView%26enlarge%3D1%26thumbnail%3D1200y800%26quality%3D85&spsAdPlanId=176&spsModelId=0&s=news_zhizi_android_01&spsAdId=2&spsExpandId=291&spsImpressionId=441203903548&spsextend=test2"
        if not ad.get('ext'):
            ad['ext'] = {}
        ad['ext']['appname']="网易新闻"
        ad['ext']['pkg_name']="com.netease.newsreader.activity"
        ad['ext']['appid']=100812722
        ad['pkg_download_schema']="taskApkId=0&packName=com.netease.newsreader.activity&taskAppId=&appId=&via=ANDROIDQQ.FEED.ADVERTISE.zvqj62cnik7wo01&versionCode=652&channel=000116083636353430393231;70225816"
        # ad['rl']="newsapp://doc/DJ4OSETE0511A0AV?spsAdDocId=DJ4OSETE0511A0AV&spsPrice=0&spsPicId=http%3A%2F%2Fcms-bucket.nosdn.127.net%2Ffa04e6870fd647c8b49cdf4719247a6b20180531114309.jpeg%3FimageView%26enlarge%3D1%26thumbnail%3D1200y800%26quality%3D85&spsAdPlanId=176&spsModelId=0&s=news_zhizi_android_01&spsAdId=2&spsExpandId=291&spsImpressionId=441203903548&spsextend=test2"
    # print(list)
    json_data['data'][data_id]["list"]=list
    return json_data
@server.route('/information',methods=["get","post"]) # server.route装饰器装饰方法
def information():
    url = flask.request.url
    # print("url:",url)
    url = url.replace("http://47.94.108.11:8999","http://info.gdt.qq.com")
    res = requests.get(url).json()
    if 'push' not in url:
        res = replace_txt(res)
    return json.dumps(res,ensure_ascii=False)
server.run(host='0.0.0.0',port=8999,debug=True) # server的启动
4.看一下效果
上一篇 下一篇

猜你喜欢

热点阅读