欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

python脚本如何模拟接口实现批量用户开通(代码)

程序员文章站 2022-03-10 11:01:32
...
本篇文章给大家带来的内容是关于python脚本如何模拟接口实现批量用户开通(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

1、目的

通过模拟接口方法,实现批量用户开通

2、分析

A、接口含body和head部分,其中body中的某些变量为必填字段,包含用户的信息。

B、用户信息清单可以整理成ott_after_check_device文件。

C、将ott_after_check_device文件转换成列表数据类型,将其用户信息对应替换到body.xml文件中。

3、脚本实现

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder

def get_txt_after_check_device():
    ott_after_check_device = '.\\ott_after_check_device.txt'
    f = open(ott_after_check_device)
    lines = f.readlines()
    all_list_device = []
    for line in lines:
        line = line.replace("\n", '')
        list_device = line.split(',')
        all_list_device.append(list_device)
    return all_list_device


def ott_boss(list_device):
    sleep_time = 0.001
    # print len(list_device)
    for i in range(len(list_device)):
        print u'新开户数 :', i + 1
        time.sleep(sleep_time)
        acc_num = list_device[i][0]
        stb_id = list_device[i][1]
        print 'STBID : ', stb_id
        account = list_device[i][2]
        url = 'http://10.2.214.133:6600/oss/rest/mango/bossManagement/syncOrder'
        mul = MultipartEncoder(
                fields={
                    'xmlhead': '<?xml version="1.0" encoding="UTF-8"?> <InterBOSS>'
                               '<Version>0100</Version>'
                               '<TestFlag>0</TestFlag>'
                               '<BIPType>'
                               '<BIPCode>IPTVB412</BIPCode>'
                               '<ActivityCode>T2101057</ActivityCode>'
                               '<ActionCode>0</ActionCode>'
                               '</BIPType>'
                               '<RoutingInfo>'
                               '<OrigDomain>BOSS</OrigDomain>'
                               '<RouteType>00</RouteType>'
                               '<Routing>'
                               '<HomeDomain>OTT</HomeDomain>'
                               '<RouteValue>210</RouteValue>'
                               '</Routing>'
                               '</RoutingInfo>'
                               '<TransInfo>'
                               '<SessionID>2018092517323481311686</SessionID>'
                               '<TransIDO>2018092517323416388122</TransIDO>'
                               '<TransIDOTime>20180211173234</TransIDOTime>'
                               '</TransInfo> </InterBOSS>',
                    'xmlbody': '<?xml version="1.0" encoding="UTF-8"?> <InterBOSS>     <SvcCont><![CDATA[<?xml '
                               'version="1.0" encoding="UTF-8"?> <OrdSynReq>'
                               '<PkgSeq>73120180111000007</PkgSeq>'
                               '<RecNum>1</RecNum>'
                               '<UD1>'
                               '<IDType>01</IDType>'
                               '<IDV>%s</IDV>'
                               '<Brand>09</Brand>'
                               '<Opr>06</Opr>'
                               '<OprT>20180925171922</OprT>'
                               '<BizType>52</BizType>'
                               '<Seq>8121</Seq>'
                               '<BroadbandID>738815023717</BroadbandID>'
                               '<ZipCode></ZipCode>'
                               '<Address></Address>'
                               '<UserName></UserName>'
                               '<UserSex></UserSex>'
                               '<IDCardType></IDCardType>'
                               '<IDCardNum></IDCardNum>'
                               '<AreaCode>K381</AreaCode>'
                               '<GroupID></GroupID>'
                               '<POCont>'
                               '<ActType>1</ActType>'
                               '<StbID>%s</StbID>'
                               '<Account>%s</Account>'
                               '<Password>111111</Password>'
                               '<ChrgType>2</ChrgType>'
                               '<EffetiTime>20180925171922</EffetiTime>'
                               '<Channel>08</Channel>'
                               '<SPID>mango</SPID>'
                               '<BizCode>defaultBasicProduct</BizCode>'
                               '<BizKind>01</BizKind>'
                               '</POCont>'
                               '</UD1> </OrdSynReq> '
                               ']]></SvcCont> </InterBOSS>' % (acc_num, stb_id, account)
                }
        )
        header = {'Content-Type': mul.content_type}
        body = mul
        response = requests.post(url, data=body, headers=header)
        print response.content
        print response.status_code


if __name__ == '__main__':
    ott_boss(get_txt_after_check_device())

以上就是python脚本如何模拟接口实现批量用户开通(代码)的详细内容,更多请关注其它相关文章!

相关标签: python脚本