您的位置:首页 > 其它

调用web服务的代理设置问题

2008-09-04 10:49 471 查看
 前段时间做了一个sso接口,真的很麻烦,其中,沟通问题和标准问题就是两大拦路虎,也是花时间最多的!
首先说下在asp.net中调用wsdl,就是一个描述的地址,直接通过添加web引用以后,然后using WebReference;//添加引用

//new一个对象
   MyWebService webs = new I MyWebService();
   anyType[] ReObj; //返回值数组
   MyList ReSt = new MyList();//自定义的返回值列表,这里是结构体

//调用方法
ReObj = webs.loginService(SYSID)

//返回结果
foreach (anyType obj in ReObj)
            {
                if (obj.key.Equals("LoginState"))
                    ReSt.LoginState =obj.value;
             }
如果公司里面,需要使用代理的话,需要添加以下的代码: //添加代理验证
       WebProxy myProxy = new WebProxy("代理名称", true);
       myProxy.Credentials = new NetworkCredential("uname","pwd","域名");
       webs.Proxy = myProxy; //就可以

在asp中,如果调用java写的wsdl,如果是标准的wsdl的话,那么通过微软的toolkit也须不行,但是自己构造一个soap包去请求肯定可以的,就怕是wsdl有问题,反正我做的这个就是因为wsdl是有问题的,所以先用、。net调用java写的wsdl,然后在发布服务,给asp调用,过程好复杂,asp调用.net的web服务,直接调用,.net服务都会列出说有的方法,不过注意的是调用的路径需要对,在web服务后面加上调用的方法名称,比如URL+“/loginService”
在asp调用web服务中如果需要用到代理的话,需要如下<%
url = "http://127.0.0.1/WebService.ws?wsdl"
authProxy="代理名称"
authUser="uname"
authPass="pwd"

'下面是构造soap1.2的包

SoapRequest="<?xml version=""1.0"" encoding=""utf-8""?>"& _
"<soap12:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" "& _
"xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" "& _
"xmlns:soap12=""http://www.w3.org/2003/05/soap-envelope""> "& _
"<soap12:Body>"& _
"<loginService xmlns=""WebService""> "& _'这个是命名空间 ,需要填写对
"<pwd>"&password"</pwd> "& _
"<uname>"&authUser"</unam> "& _  '这些是参数 
"</loginService> "& _
"</soap12:Body>"& _
"</soap12:Envelope>"

'为了验证代理所以不是XMLHTTP
Set xmlhttp = server.CreateObject("Msxml2.serverXMLHTTP")
xmlhttp.Open "POST",url,false,authUser,authPass

xmlhttp.setRequestHeader "Content-Type", "text/xml; charset=GB2312"
xmlhttp.setRequestHeader "Content-Length",LEN(SoapRequest)
xmlhttp.setRequestHeader "SOAPAction", "tWebService" '一定要与WEBSERVICE的命名空间相同,否则服务会拒绝
xmlhttp.Send(SoapRequest)
'这样就利用XMLHTTP成功发送了与SOAP示例所符的SOAP请求.
'检测一下是否成功:
'Response.Write xmlhttp.responseText
 Response.Write xmlhttp.responseXML.xml
Set xmlhttp = Nothing
%>
之前也用过js去调用web服务,还有微软的一个js的web服务包,什么都试过,这么多的方法,特别是soap包的规范问题,还要代理,验证,浏览器都可能出现问题,所有的事情都有解决的方法,此路不通,尽量想其他的!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: