注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

widebright的个人空间

// 编程和生活

 
 
 

日志

 
 

c# web service 相关,SOAP 1.1 还是 1.2  

2014-07-04 16:43:40|  分类: 程序设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1. C#   web service 的SOAP版本默认1.1  , 
      client端和对应的配置在 App.config 文件里面xml 配置。
      basicHttpBinding  说是支持 envelopeVersion="None/Soap11/Soap12" 配置,但这个应该是不能设置的。文档也说了,默认就是Soap11。
       采用自定义的Custom Bindings 的通过配置 protocols  ,应该可以配置通讯协议,消息格式等。但看上去很复杂,没试过。 

      System-Provided Bindings
      http://msdn.microsoft.com/en-us/library/ms730879(v=vs.90).aspx
     <basicHttpBinding>
      http://msdn.microsoft.com/en-us/library/ms731361(v=vs.110).aspx
      Custom Bindings
      http://msdn.microsoft.com/en-us/library/aa347793(v=vs.90).aspx

2.   client端请求的soap服务器地址,可以在 App.config 文件修改   <endpoint address 为指定的值。

3.   框架自动生成的接口代码在\工程的Service References 目录
Reference.cs
*.wsdl
这两个文件感觉比较有用。比如修改  Enum 枚举类型的 [DataContract] 和  [EnumMember]  属性。
默认生成的一个enum类型,可以通过EnumMember 属性value值修改默认 序列号名字。
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="MessageType", Namespace="http://widebright.cn/")]
    public enum MessageType: int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Send= 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Recv= 1,
    }


4.  c#的 WCF 应该比这个web service的新吧,看上去也是支持SOAP协议的,可以配置的选项看上去更多一些。

        private async void button_ussd_push_Click(object sender, EventArgs e)
        {
            UssdTestWebService.UssdPushServiceSoapClient ussd_push_client = new UssdTestWebService.UssdPushServiceSoapClient();
           // UssdSoapApi.Response r = ussd_push_client.USSDPush(textbox_msisdn.Text, 1, UssdSoapApi.PushType.PushOnce, textbox_text.Text, "1123");
           // textBox_result.Text = r.Result.ToString() + " " + r.TransanctionID;

            UssdTestWebService.USSDPushResponse r = await ussd_push_client.USSDPushAsync(textbox_msisdn.Text, 1, UssdTestWebService.PushType.PushOnce, textbox_text.Text, "1123");
            id++;
            textBox_result.Text = r.Body.USSDPushResult.Result.ToString() + " " + r.Body.USSDPushResult.TransanctionID +  id.ToString();
        }

5.  c#  同步和异步调用 web service 方法的例子。
        private async void button_message_push_Click(object sender, EventArgs e)
        {
            MessageTestWebService.MessagePushServiceSoapClient message_push_client = new MessageTestWebService.MessagePushServiceSoapClient();
           // MessageSoapApi.Response r = message_push_client.MessagePush(textbox_msisdn.Text, 1, MessageSoapApi.PushType.PushOnce, textbox_text.Text, "1123");
           // textBox_result.Text = r.Result.ToString() + " " + r.TransanctionID;

            MessageTestWebService.MessagePushResponse r = await message_push_client.MessagePushAsync(textbox_msisdn.Text, 1, MessageTestWebService.PushType.PushOnce, textbox_text.Text, "1123");
            id++;
            textBox_result.Text = r.Body.MessagePushResult.Result.ToString() + " " + r.Body.MessagePushResult.TransanctionID +  id.ToString();
        }





SOAP规范
http://www.w3.org/TR/soap/

Simple Object Access Protocol (SOAP) 1.1
http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#XMLS1
  评论这张
 
阅读(574)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017