post

C#调用Java提供的WebService

现在,越来越多的大项目在使用Java,.net出身的我,也参与了一个Java项目的开发,项目也快接近尾声了,算是今年最重要的一个工作。现在公司的.net项目还是不少的,前期用.net开发效率比较高,但是出于成本和开源等多方面的考虑,还是Java比较占优势,现在公司的新项目也都是用Java开发的了。

下面介绍下,在.net项目中如何调用Java项目提供的WebService,留作备忘。

1、首先用Visual Studio 命令提示生成WebService客户端类文件;

wsdl //www.izhangheng.com/ws/webservice?wsdl


2、将生成的类文件拷贝到项目中,在类文件的前面添加AuthenticationHeader类(也可单独类文件),用于调用WebService的验证,代码如下:

    [System.Serializable]
    [System.Xml.Serialization.XmlType(Namespace = "www.izhangheng.com")]
    [System.Xml.Serialization.XmlRoot(Namespace = "www.izhangheng.com", IsNullable = false)]
    public class AuthenticationHeader : SoapHeader
    {
        public string Token { get; set; }

        public string qName { get; set; }

        public string Key { get; set; }
    }

3、在构造函数中赋值,代码如下:

    public AuthenticationHeader AuthenticationHeader{get;set;}

    /// remarks
    public WebServiceImplService() {
        AuthenticationHeader = new AuthenticationHeader
        {
            //加密,需与验证方相同加密算法
            Token = ConfigurationManager.AppSettings["Token"],
            qName = "www.izhangheng.com",
            Key = "AuthenticationHeader"
        };
        this.Url = ConfigurationManager.AppSettings["wsUrl"] ?? "//www.izhangheng.com/ws/webservice";
        
    }

4、最后,在调用的方法前加入标签:

 
[SoapHeader("AuthenticationHeader")]
 public Result addOrder(){}

好了,现在就可以正常调用Java的WebService了。

Comments

  1. 技术文,看不懂哈哈,java确实很火,现在开源的都比较火

  2. 技术文,看不懂哈哈,java确实很火,现在开源的都比较火

  3. 纯技术文章,看不懂,哈哈

  4. 纯技术文章,看不懂,哈哈

Speak Your Mind

*

· 1,603 次浏览