Python调用服务接口

#! /usr/bin/env python
# coding=utf-8
######################################################################
# Author: yini.xie
# Create Time: 2016-07-05 16:28:42
# Descriptioin:
######################################################################
import os
import sys
import time
import json
import urllib
import urllib2
from urllib import quote
from datetime import datetime

pathATM = "http://192.168.217.217:4080/invoke.json"

def fmtLen(value, length=7):
    fmt = '{0:>%d}' % (length)
    return fmt.format(value)


def changeWithdrawRule(customerId, productCode, ruleTemplateId, ruleId, operator):
    service_url_s = "http://service.xxx.com/tsService/TSRuleService_1.0.0"
    method_s = "bindCustomerWithdrawRuleTemplate"
    params_s = "parameters[]=%d&parameters[]=%d&parameters[]=%d&parameters[]=%d&parameters[]=%s" % (customerId, productCode, ruleTemplateId, ruleId, operator)
    params_s += "&url=%s&method=%s&parameterTypes[]=int&parameterTypes[]=int&parameterTypes[]=int&parameterTypes[]=int&parameterTypes[]=java.lang.String" % (service_url_s, method_s)
    url_s = pathATM + "?" + quote(params_s, safe='&=')
    data_s = urllib2.urlopen(url_s).read()
    print url_s
    return json.loads(data_s)

if __name__ == '__main__':
    start = datetime.now()

    for line in open(sys.argv[1]).xreadlines():
        fields = line.strip().split()
        customerId = int(fields[0])
        productCode = int(fields[1])
        ruleTemplateId = int(fields[2])
        ruleId = int(fields[3])
        print "start to deal customerId = " + str(customerId)
        
        changeWithdrawRule(customerId, productCode, ruleTemplateId, ruleId, "Case")
    

    end = datetime.now()

运行Python脚本,即可调用相应的接口修改数据库数据。

python ChangeCustomerRule.py text.txt

text.txt中即为参数,以空格分隔

原文地址:https://www.cnblogs.com/umgsai/p/5785513.html