紧急求助:.Net客户端调用 Java写的webservice问题(关于Soap header)!【不惜一切代价】
Java写的webservice 使用 soap header (包含身份证信息)请问: .NET 客户端中如何调用
--------------------编程问答-------------------- 1.叫他发wsdl文档给你 (是一个xml)
2.用.net的 wsdluntil 工具生成代理类
(其实就是.net直接引用webservices的那种方式) --------------------编程问答--------------------
没那么简单,java 的 soap header 与.net 自定义的 soad header 不一样! --------------------编程问答-------------------- 直接在解决方案里引用一个已经存在的WEB SERVICE项目。如果连接成功,那WEB SERVICES所有公开的方法和类应该都可以在你的解决方案里看到,使用就可以了吧。 --------------------编程问答--------------------
如果那么简单就好了!谢谢帮顶!
现在的问题是,JAVA写的WEBservice 需要验证SOAP头信息,而.net默认是不发SOAP头过去的 ,肯定要自己定义了,自定义方法:
Inherits System.Web.Services.Protocols.SoapHttpClientProtocol
Public Class MySoapHeader
Inherits SoapHeader
Public Username As String
Public Password As String
End Class
但是怎么样将这个soap包一起发送到java 的webserivce 呢?
.net 中通过引用 java 的 webseice 后自动生产代理类
<System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace:="http://test/AVExternalWS", ResponseNamespace:="http://test/AVExternalWS", Use:=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle:=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)> _
Public Function aliReceiveCancelAV( <System.Xml.Serialization.XmlElementAttribute(IsNullable:=True)> ByVal in0 As String) As <System.Xml.Serialization.XmlElementAttribute("out", IsNullable:=True)> String
Dim results() As Object = Me.Invoke("aliReceiveCancelAV", New Object() {in0})
Return CType(results(0), String)
End Function
现在的问题是怎么样向这类中添加自定义SOAP header,这样似乎也不对
<System.Web.Services.Protocols.SoapDocumentMethodAttribute("MySoapHeader", RequestNamespace:="http://test/AVExternalWS", ResponseNamespace:="http://test/AVExternalWS", Use:=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle:=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)> --------------------编程问答--------------------
可以偿试一下再说了。 --------------------编程问答-------------------- 这么复杂?顶下吧,学习。
我一直都是用直接找的,在解决方案上直接添加“WEB引用”,输入服务地址,如果找到,会在本地工程里生成相应服务的有关信息文件,然后就立马可用。 --------------------编程问答-------------------- 楼主应该调用的是另一厂家的 webservice 吧,可能是 java开发的。
这样一来, 5#楼的问了等于没问。 不给 soapheader ,不可能调得出来验证。 --------------------编程问答-------------------- 添加 ‘web引用’很简单,简直这个引用的代理类就像自己写的。
但是 当身份验证 的 soapheader 不在这个代理类里,只提供了xml描述。 你该如何?
#6 楼及以上的兄弟? --------------------编程问答-------------------- 现在做的项目也有这个情况,本身用.net,调用另一个厂家用AXIS2做的Webservice时需要传递SOAP Header进行验证.
http://www.cnblogs.com/kwklover/archive/2005/02/02/100875.html这个例子不知行不行?
或者...使用HttpWebRequest直接发了个SOAP过去...Header,body全部自己写的,用起来很麻烦,不推荐~ --------------------编程问答-------------------- 有空看一下 --------------------编程问答-------------------- 在这个帖子里回了。楼主不妨看一下:
http://topic.csdn.net/u/20120509/14/94022678-bc7a-4d79-b4ac-d0e6185bf378.html --------------------编程问答-------------------- 学习学习,同样关注! --------------------编程问答-------------------- 还有人解决了,贴下方案 --------------------编程问答-------------------- 用Java
知道错了吧
补充:.NET技术 , VB.NET