调用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包的规范问题,还要代理,验证,浏览器都可能出现问题,所有的事情都有解决的方法,此路不通,尽量想其他的!
首先说下在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包的规范问题,还要代理,验证,浏览器都可能出现问题,所有的事情都有解决的方法,此路不通,尽量想其他的!
相关文章推荐
- 关于调用Web服务引用方式不同的问题
- webpack-dev-server 设置反向代理解决跨域问题
- Web服务扩展设置的问题
- 六:webpack-dev-server 设置反向代理解决跨域问题
- 解决.NET 调用JAVA WEBService服务中文乱码问题
- C# 调用 JavaWebservice服务遇到的问题汇总
- asp构造soap调用.net发布的web服务(没有代理验证)
- java web start 代理的设置问题
- HttpWebRequest提高效率之连接数,代理,自动跳转,gzip请求等设置问题
- Web服务中调用office pia 操作WORD,EXCEL时需做的设置
- webpack设置服务代理
- WCF项目问题2-无法激活服务,因为它需要 ASP.NET 兼容性。没有未此应用程序启用 ASP.NET 兼容性。请在 web.config 中启用 ASP.NET 兼容性,或将 AspNetCompatibilityRequirementsAttribute.AspNetCompatibilityRequirementsMode 属性设置为 Required 以外的值。
- flex调用web服务的安全设置
- 详解webpack-dev-server 设置反向代理解决跨域问题
- delphi调用C# WEB服务,参数传递问题 (转)
- C#调用Java端Web服务(CXF)时发生Integer参数类型无法传递的问题
- 解决.NET 调用JAVA WEBService服务中文乱码问题
- HttpWebRequest提高效率之连接数,代理,自动跳转,gzip请求等设置问题
- 只能从脚本中调用在类定义上有[ScriptService]属性的 Web 服务问题的解决方法
- 采用动态代理方式调用WEB服务(转载+整理)