public class RequestSOAPHeader : System.Web.Services.Protocols. SoapHeader
{
public string user { getset}
public string password { getset}
}
生成的WebService代理类中设置成属性成员:
public partial class ISysNotifyTodoWebServiceService
{
public RequestSOAPHeader RequestSOAPHeader { getset}
}
在访问的WebService方法上方添加SOAPHeader的声明:
[System.Web.Services.Protocols. SoapDocumentMethodAttribute( "", RequestNamespace="http://webservice.notify.sys/" , ResponseNamespace="http://webservice.notify.sys/" , 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( "RequestSOAPHeader")]
public notifyTodoAppResult setTodoDone([System.Xml.Serialization.XmlElementAttribute (Form=System.Xml.Schema.XmlSchemaForm .Unqualified)] notifyTodoRemoveContext arg0) {
object[] results = this.Invoke( "setTodoDone", new object[] {
arg0})
return (( notifyTodoAppResult)(results[0]))
}
如果你是用axis生成的代码的话 去用CUX_0_WS_SERVER_PRG_BindingStub.java 这个类调用服务。CUX_0_WS_SERVER_PRG_Service service=new CUX_0_WS_SERVER_PRG_ServiceLocator()
CUX_0_WS_SERVER_PRG_BindingStub stub=(CUX_0_WS_SERVER_PRG_BindingStub)service.CUX_0_WS_SERVER_PRGSOAP()
stub.setUsername("aaaa") //连接的用户名
stub.setPassword("aaaa")//连接的密码
stub.setHeader( dddd) //dddd是一个SOAPHeader 具体看对方wsdl要求
stub.invokefmsws(so.in)
不知道对方要求怎么验证 是在header中添加用户名和密码 还是在连接时需提供用户名密码。
所以把添加header 和 使用用户名 密码连接 验证都写了。 找对方确认下用那种方式然后自己试一下。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)