C# 调用java写的WebService返回信息

群里问的一个问题 C# 调用java写的WebService返回信息,之前他一直没调用成功。返回的是worng soap header 错误。

参考别人的代码然后自己有改了下。代码少多了。

java webservice在VS2013中引用步骤:

1:鼠标右键点击项目的引用 =》选择添加服务引用

把要调用的服务地址输入:例如http://218.242.22.128:8080/portalService/services/transServer?wsdl 然后点击转到

然后点击确定



Reference.cs 里面就有要调用的服务里面的所有方法了。

//------------------------------------------------------------------------------
// <auto-generated>
//     此代码由工具生成。
//     运行时版本:4.0.30319.18408
//
//     对此文件的更改可能会导致不正确的行为,并且如果
//     重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------

namespace NetCallJavaWebService.CallJavaService {
    
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ServiceModel.ServiceContractAttribute(Namespace="http://webService.htdata.com/",
 ConfigurationName="CallJavaService.IWebService")]
    public interface IWebService {
        
        // CODEGEN: 参数“ResponseDto”需要其他方案信息,使用参数模式无法捕获这些信息。特定特性为“System.Xml.Serialization.XmlElementAttribute”。
        [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
        [return: System.ServiceModel.MessageParameterAttribute(Name="ResponseDto")]
        NetCallJavaWebService.CallJavaService.doTransResponse doTrans(NetCallJavaWebService.CallJavaService.doTrans request);
        
        [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")]
        System.Threading.Tasks.Task<NetCallJavaWebService.CallJavaService.doTransResponse>
 doTransAsync(NetCallJavaWebService.CallJavaService.doTrans request);
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18408")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://webService.htdata.com/")]
    public partial class requestDto : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string bizCdField;
        
        private string reqBodyField;
        
        private string reqSeqField;
        
        private string reqTmsField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
        public string bizCd {
            get {
                return this.bizCdField;
            }
            set {
                this.bizCdField = value;
                this.RaisePropertyChanged("bizCd");
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
        public string reqBody {
            get {
                return this.reqBodyField;
            }
            set {
                this.reqBodyField = value;
                this.RaisePropertyChanged("reqBody");
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)]
        public string reqSeq {
            get {
                return this.reqSeqField;
            }
            set {
                this.reqSeqField = value;
                this.RaisePropertyChanged("reqSeq");
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=3)]
        public string reqTms {
            get {
                return this.reqTmsField;
            }
            set {
                this.reqTmsField = value;
                this.RaisePropertyChanged("reqTms");
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18408")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://webService.htdata.com/")]
    public partial class responseDto : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string bizCdField;
        
        private string reqSeqField;
        
        private string rspBodyField;
        
        private string rspCdField;
        
        private string rspDescField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
        public string bizCd {
            get {
                return this.bizCdField;
            }
            set {
                this.bizCdField = value;
                this.RaisePropertyChanged("bizCd");
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
        public string reqSeq {
            get {
                return this.reqSeqField;
            }
            set {
                this.reqSeqField = value;
                this.RaisePropertyChanged("reqSeq");
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)]
        public string rspBody {
            get {
                return this.rspBodyField;
            }
            set {
                this.rspBodyField = value;
                this.RaisePropertyChanged("rspBody");
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=3)]
        public string rspCd {
            get {
                return this.rspCdField;
            }
            set {
                this.rspCdField = value;
                this.RaisePropertyChanged("rspCd");
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=4)]
        public string rspDesc {
            get {
                return this.rspDescField;
            }
            set {
                this.rspDescField = value;
                this.RaisePropertyChanged("rspDesc");
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(WrapperName="doTrans", 
WrapperNamespace="http://webService.htdata.com/", IsWrapped=true)]
    public partial class doTrans {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://webService.htdata.com/", Order=0)]
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public NetCallJavaWebService.CallJavaService.requestDto requestDto;
        
        public doTrans() {
        }
        
        public doTrans(NetCallJavaWebService.CallJavaService.requestDto requestDto) {
            this.requestDto = requestDto;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(WrapperName="doTransResponse",
 WrapperNamespace="http://webService.htdata.com/", IsWrapped=true)]
    public partial class doTransResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://webService.htdata.com/", Order=0)]
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public NetCallJavaWebService.CallJavaService.responseDto ResponseDto;
        
        public doTransResponse() {
        }
        
        public doTransResponse(NetCallJavaWebService.CallJavaService.responseDto ResponseDto) {
            this.ResponseDto = ResponseDto;
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public interface IWebServiceChannel : NetCallJavaWebService.CallJavaService.IWebService, 
System.ServiceModel.IClientChannel {
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class WebServiceClient : System.ServiceModel.ClientBase
<NetCallJavaWebService.CallJavaService.IWebService>, 
NetCallJavaWebService.CallJavaService.IWebService {
        
        public WebServiceClient() {
        }
        
        public WebServiceClient(string endpointConfigurationName) : 
                base(endpointConfigurationName) {
        }
        
        public WebServiceClient(string endpointConfigurationName, string remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public WebServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public WebServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(binding, remoteAddress) {
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        NetCallJavaWebService.CallJavaService.doTransResponse NetCallJavaWebService.CallJavaService.IWebService.
doTrans(NetCallJavaWebService.
CallJavaService.doTrans request) {
            return base.Channel.doTrans(request);
        }
        
        public NetCallJavaWebService.CallJavaService.responseDto doTrans(NetCallJavaWebService.
CallJavaService.requestDto requestDto) {
            NetCallJavaWebService.CallJavaService.doTrans inValue = new NetCallJavaWebService.CallJavaService.doTrans();
            inValue.requestDto = requestDto;
            NetCallJavaWebService.CallJavaService.doTransResponse retVal = 
((NetCallJavaWebService.CallJavaService.IWebService)(this)).doTrans(inValue);
            return retVal.ResponseDto;
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.Threading.Tasks.Task<NetCallJavaWebService.CallJavaService.doTransResponse> 
NetCallJavaWebService.CallJavaService.IWebService.doTransAsync
(NetCallJavaWebService.CallJavaService.doTrans request) {
            return base.Channel.doTransAsync(request);
        }
        
        public System.Threading.Tasks.Task<NetCallJavaWebService.CallJavaService.doTransResponse> doTransAsync
(NetCallJavaWebService.CallJavaService.requestDto requestDto) {
            NetCallJavaWebService.CallJavaService.doTrans inValue = new NetCallJavaWebService.CallJavaService.doTrans();
            inValue.requestDto = requestDto;
            return ((NetCallJavaWebService.CallJavaService.IWebService)(this)).doTransAsync(inValue);
        }
    }
}

OK 然后再去web.config里面配置登陆验证信息

<system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="WebServicImplServiceSoapBinding" />
            </basicHttpBinding>
        </bindings>
        <client>
//标红代码是添加服务引用自带追加的
 <endpoint address="http://218.242.22.128:8080/portalService/services/transServer"
                            binding="basicHttpBinding" bindingConfiguration="WebServicImplServiceSoapBinding"
                            contract="CallJavaService.IWebService" name="WebServicImplPort">
                        <!--数据交互    用户名和密码安全检查-->
//配置登陆用户名和密码
 <headers>
                            <checkHeader>
                                <userId>test1</userId>
                                <userPass>123456789</userPass>
                            </checkHeader>
                        </headers>
                    </endpoint>
        </client>
    </system.serviceModel>

C#代码:

protected void Button1_Click(object sender, EventArgs e)
		{

java webservice 的标准
 //<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
			//<soap:Header><checkHeader><userId>shenghetong</userId>
			//<userPass>shenghetong123</userPass></checkHeader></soap:Header>
			//<soap:Body><ns2:doTrans xmlns:ns2="http://webService.htdata.com/"><requestDto>
			//<bizCd>cardInfoQuery</bizCd>
			//<reqBody>dxHDkYKAI8ENS0vp6H2r+IsxQAc6Lt3RtS+kbl9x20tu3an1XZkuI2jBd6H8NVlwAXB3xr5ID5M=</reqBody>
			//<reqSeq>qd111111111</reqSeq><reqTms>99999999111111</reqTms></requestDto></ns2:doTrans></soap:Body></soap:Envelope>
			//<soap:Header><checkHeader><userId>shenghetong</userId>
			//<userPass>shenghetong123</userPass><eckHeader></soap:Header>

			//环境访问WSDL地址	http://218.242.22.128:8080/portalService/services/transServer?wsdl
 string result = "wrong!";
			try
			{
				CallJavaService.WebServiceClient hf = new CallJavaService.WebServiceClient();
				CallJavaService.requestDto rqst = new CallJavaService.requestDto();
				rqst.reqSeq = "qd111111111";
				rqst.bizCd = "cardInfoQuery";
				rqst.reqBody = "dxHDkYKAI8ENS0vp6H2r+IsxQAc6Lt3RtS+kbl9x20tu3an1XZkuI2jBd6H8NVlwAXB3xr5ID5M=";
				rqst.reqTms = "99999999111111";

				result = hf.doTrans(rqst).rspCd + "<br/>" 
						+ hf.doTrans(rqst).rspDesc + "<br/>"
						+ hf.doTrans(rqst).rspBody;
				Response.Write(result);
			}
			catch (Exception ex)
			{
				System.IO.File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + "wrong.log", ex.Message);
			}
		}

返回信息:

0000
succes!
JKWGMHn0XKZJhZZtjXKX2++g4HoR+1YGuzLDXwPYd8z2y1a0Vng6c7R/x2IvsRMjqurBrYZ2lJltuC2SlBL28wFqqUQccuH2Pa1JjM0MSqbyja9T/ggDUwPOFZYoJ9we97qByZivKOzmK9dITyNiGWoopZsWZcwjWV3L/YK9LAPlK8v1/7qTXD+sJER9ZyE84SY8AveiQlAUcHmrKW92l2go5fgpo9+E


到这来就C#  调用java webservice 结束了。

参考:

http://blog.csdn.net/yenange/article/details/5824967

http://www.cnblogs.com/huashanlin/archive/2008/06/30/1232315.html

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值