易妖游戏网
您的当前位置:首页python脚本如何模拟接口实现批量用户开通(代码)

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

来源:易妖游戏网


本篇文章给大家带来的内容是关于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("
", '')
 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())
显示全文