https需要服务端和客户端都配置好。首先你要确认服务端确实已经配置好了。比如可以用浏览器用https方式访问(比如IE会弹出一个“安全警报”确认对话框)。如果服务器端准备好了,就要让客户端用上服务端的证书。在java里是将服务器端的证书导入客户端的keystore文件中,然后在客户端设置好环境用到这个keystore即可。在ASP里边你可以查阅相关资料。不过,有一点要明确,这个SSL协议也是标准的东东,位于tcp以上http层以下。各种语言都会提供支持的。跟Web Service没有直接的关联,不要在 Web Service里打转转。
谢谢usabcd,java里比较熟,asp第一次玩,oracle as web service也是第一次弄,所以问题比较多。 谢谢,搞定后一定及时结帐
http://quimby.gnus.org/internet-drafts/draft-cunnings-salz-soap-auth-01.txt
写成如下:
<SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Header>
<h:BasicAuth
xmlns:h="http://soap-authentication.org/2002/01/"
SOAP-ENV:mustUnderstand="1">
<Name>admin</Name>
<Password>broccoli</Password>
</h:BasicAuth>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<m:echoString xmlns:m="http://soapinterop.org/">
<inputString>This is a test.</inputString>
</m:echoString>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
response 不成功
请教大侠,应该怎样写呢?
例如作为客户端,微软的浏览器IE就内置了这样功能,你浏览有的网站,
它会跳出一个叫你输用户名密码的对话框。否则返回HTTP401错误。你如果放到SOAP Header里,那就不叫basic auth了,当然这样也是可以选择的一种方案,但是如果这样服务端也要做相应更改,改为从SOAP信息里取。但如果你们的验证协议已经定好了采用basic auth, 那你这样写是错误的。 具体的写法你的SDK工具里肯定已经有了,你可以查一下。不需要你手工用文本方式硬写。
oHeader.Add(FieldName, FieldValue)之类的搞法了。
我采用http basic auth
部分代码如下:
url="http://www.abc.com";
SoapRequest="..........";Set xmlDOC =server.CreateObject("MSXML.DOMDocument")
xmlDOC.loadXML(SoapRequest)Set xmlhttp = server.CreateObject("Msxml2.XMLHTTP")
xmlhttp.Open "POST",url,false,userName,password成功运行,谢谢。
不过当我采用https时无法成功,再次请问大侠。
谢谢,搞定后一定及时结帐