C# 调用java写的WebService返回信息
来源:互联网 发布:伪钞制造者 知乎 编辑:程序博客网 时间:2024/05/02 02:48
群里问的一个问题 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);}}
返回信息:
0000succes!
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
0 0
- C# 调用java写的WebService返回信息
- java调用c#写的webservice
- 求救:C# 调用JAVA写的WEBSERVICE的问题!
- c#调用java写的webservice数据丢失有关问题
- C++、C#写的WebService相互调用
- 关于delphi调用c#写的webservice
- C++、C#写的WebService相互调用
- C++、C#写的WebService相互调用
- C++、C#写的WebService相互调用
- Delphi调用C#写的webservice
- C++、C#写的WebService相互调用
- java 调用C#的webservice
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- Java调用.Net写的Webservice
- NET调用Java写的WebService[转]
- asp.net调用java写的webservice
- 通过telnet连接查看memcache服务器
- 图片异步加载框架 Android-Universal-Image-Loader
- 简述Session 、Cookie、cache 区别
- 关于Richedit的研究分析
- PL/SQL Developer登录之后报错报错
- C# 调用java写的WebService返回信息
- SAP配置变式物料
- 开发和常用工具推荐清单
- VS宏定义中的#,##
- MFC控件自绘之(五)
- 判断字符串中是否包含某种字符
- HTML 字符实体
- 转:IOS TableView Cell重用机制及TableView常用Code
- 视频码率,帧率和分辨率的联系与区别