# C# 调用java的WebService添加SOAPHeader验证
来源:互联网 发布:mac同步铃声 编辑:程序博客网 时间:2024/05/18 22:55
C#调用java的WebService添加SOAPHeader验证
本文与别的网文不同的是,本文教大家利用VS添加WSDL自动生成的代理类添加SoapHeader。
写JAVA接口的同事给了一个文档,要求在soapHeader里面加一个UserToken的验证。JAVA处理这事情其实挺简单的,就配置一下配置文件就可以了。但C#不能简单的通过配置处理。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice.m3.mls.com/"><soapenv:Header><Authentication><UserToken>EVQfaMqRNGpjmqdrKNjYvlKjVndyYcI4uUyj8OaT</UserToken></Authentication></soapenv:Header><soapenv:Body><web:getHRDeptInfo/></soapenv:Body></soapenv:Envelope>
操作步骤
- 添加Web引用
- 添加Authentication类
- 在自动生成的Reference.cs类添加Authentication全局变量
- 在访问的WebService方法上方添加SOAPHeader的声明
- 接口调用
1.添加Web引用
新版本的VS已经没有添加Web引用的菜单了。只有添加服务引用的选项
但可以在添加服务引用的高级选项中添加web引用。
PS:为什么不能添加服务引用呢? 因为添加服务引用不会自动生成WebService代理类。所以就没办法修改它的SoapHeader。
2.添加Authentication类
SoapHeader的参数不一定是UserToken,也有可能是账号密码。大家根据接口提供方给出的格式自行调整。
using System.Web.Services.Protocols;public class Authentication : SoapHeader{ public string UserToken { get; set; } /// <summary> /// 构造函数 /// </summary> public Authentication() { } /// <summary> /// 构造函数 /// </summary> /// <param name="usertoken">密码</param> public Authentication(string usertoken) { this.UserToken = usertoken; }}
3.在自动生成的Reference.cs类添加Authentication全局变量
public Authentication Authentication;
4.在访问的WebService方法上方添加SOAPHeader的声明
同样是在WebService的代理类Reference.cs里里面添加代码,主要是添加[SoapHeader("Authentication")]这一段。
如果要更新接口的话,代理类里面的全局变量和声明记得重新添加。
/// <remarks/> [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://webservice.m3.mls.com/", ResponseNamespace="http://webservice.m3.mls.com/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] [return: System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] [SoapHeader("Authentication")] public flow[] getHROAFlowInfo([System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string tableName, [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string tableColumn, [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string columnValue) { object[] results = this.Invoke("getHROAFlowInfo", new object[] { tableName, tableColumn, columnValue}); return ((flow[])(results[0])); }5.接口调用
IManuOrderServiceService proxy = new IManuOrderServiceService();//指定SoapHeader验证proxy.Authentication = new Authentication("W9nQcVGTynQnTewCcLYuGShAjhDjpoanKs4ON0");var a = proxy.getManuOrderInfo("20170505-0030");Console.WriteLine(a);
阅读全文
0 0
- # C# 调用java的WebService添加SOAPHeader验证
- java调用webservice-添加认证头(SOAPHeader)
- Java调用C#带soapheader的webservice接口
- c# 调用java webservice带有soapheader
- C#调用Axis2发布的带SoapHeader用户验证的WebService(通过测试)
- ASP.NET调用JAVA的CXF生成的Webservice,并带有Soapheader验证的解决方案
- Java调用带SoapHeader头验证的.net Webservice示例代码
- Java调用带SoapHeader头验证的.net Webservice示例代码
- android调用webservice带soapheader验证
- C#静态调用带有SoapHeader验证的WebServices
- C#动态调用带有SoapHeader验证的WebServices
- dotnet调java webservice C#调java webservice 头部验证 SoapHeader
- webservice SoapHeader 验证
- android调用带soapheader的webservice
- webservice 应用的问题(vb6调用,soapheader)
- android调用带soapheader的webservice
- .net调用java xfire发布的webservice封装soapheader头信息
- 使用SoapHeader实现对WebService的访问验证
- 软件版本
- HDU6034-Balala Power-模拟
- 养了2条拉布拉多犬
- CCAI 2017 | 德国DFKI科技总监Hans Uszkoreit:如何用机器学习和知识图谱来实现商业智能化? 原2017.07.25AI科技大本营 文/CSDN大琦 7 月22
- AMM敏捷成熟度评估框架介绍
- # C# 调用java的WebService添加SOAPHeader验证
- POJ3278BFS
- STM32接口FSMC/FMC难点的理解
- java try没有catch
- DirectX Repair(DirectX修复工具) v3.5 增强版
- 如何用深度学习做自然语言处理?这里有份最佳实践清单
- nyoj263精挑细选
- python安装教程 Pycharm安装详细教程
- 排序大全