[聚合文章] Python之Suds库调用WCF实现复杂参数序列化

.Net 2018-02-10 20 阅读
Python之Suds库调用WCF实现复杂参数序列化

今年主要做自动化测技术支持工作,最近一直在做接口自动化这块,前些天在研究将web页面模拟http进行接口自动化,这周杭州那边想测试WCF服务,所以这两天一直在探索。遇到的第一个问题就是服务参数传参序列化的问题,怎么让python这边创建的对象能被WCF识别到。正好在大学的时候也学了WCF,不过一直都没用过,这次算是重温一下,用的都是一些WCF基础。

一、WCF服务准备

1.定义契约Contract

这里IServiceDemo.cs定义了服务契约IServiceDemo,并定义了几个操作契约OperationContract,5个操作契约传的参数不同,用来做测试,同时自定义了两个数据契约DataContract.并在ServiceDemo.svc中实现了上面操作契约。

using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;using System.ServiceModel;using System.ServiceModel.Web;using System.Text;namespace WcfServiceDemo{    // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。    [ServiceContract]    public interface IServiceDemo    {        [OperationContract]        string GetSimpleData(string value);        [OperationContract]        List<Item> GetListData(List<Item> items);        [OperationContract]        Item GetModelData(Item item);        [OperationContract]        Dictionary<string,string> GetDicData(Dictionary<string,string> dic);        [OperationContract]        Dictionary<string, Dictionary<string,int>[]> GetDicDicData(Dictionary<string, Dictionary<string, int>[]> dic);    }    [DataContract]    public class ItemMenu    {        [DataMember]        public string Name { get; set; }        [DataMember]        public string Value { get; set; }    }    [DataContract]    public class Item    {        [DataMember]        public List<ItemMenu> ItemMenus { get; set; }    }
                

注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。