# user/bin/python3
# coding:utf-8
__author__ = 'Jechen'
import clr,base64,json
'''''''''
python 调用C#的DLL需要依赖Python的三方模块Pythonnet
pip install --user pythonnet
'''
clr.AddReference('funengSign') # 加载c#dll文件
from funengSign import * # 导入命名空间
instance = OpenSign() # 实例化dll里面的OpenSign类
def HttpClietn(body, key):
if body.get("JsonBody") != None:
del body["JsonBody"]
jbody = json.dumps(body)
# 调用C#DLL文件中的方法生成sign
sign = instance.CreateSignature(str(jbody), str(key))
# 替换body中的sign
body["Sign"] = sign
# JSONbody以外的参数并将JSONbody转base64
jsonbody = body.copy()
del jsonbody["AppID"]
del jsonbody["TimeStamp"]
del jsonbody["Sign"]
strJsonBody = str(json.dumps(jsonbody))
body["JsonBody"] = base64.b64encode(str(json.dumps(jsonbody)).encode("utf-8")).decode('utf-8')
# JSON格式的请求参数
strBody = json.dumps(body)
return strBody
调用C#中的方法把需要依赖的文件放入用例文件夹中,否则无法调用。