将webservice接口生成代理类

本文介绍了一种在离线环境中调用WebService的方法。当开发环境无法直接连接到WebService时,可以通过获取WebService的WSDL文件并将其转换为本地代理类的方式来实现调用。这种方法提供了更高的灵活性,并且适用于保密或离线的开发场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们知道调用webservice接口的一种方式是直接在客户端程序集上右键添加web引用。但是当我们的开发环境是保密的,离线的这时候我们在添加web引用的时候就搜不到服务端webservice了,这时候我们想在本地编码,怎么办呢?

解决方法:

可以让服务端webservice开发人员在浏览器浏览webservice地址,在地址后加上?wsdl,即可以在浏览器上看到wsdl文件,在浏览器上点击另存为,将wsdl文件保存成一个asmx的文件。将wsdl文件通过外网转内网,或者U盘的方式转到本地。转到本地之后将wsdl文件的后缀改为.wsdl结尾(例如:webservice.asmx改为webservice.asmx.wsdl)。在电脑-“开始”中找到某个版本的visualStudio开发平台文件夹打开visualstudioTools,打开“(VSXXXX(2015))开发人员命令提示”可以进入Dos控制台.粘贴命令

wsdl /language:c# /n:TestDemo /out:d:/Temp/TestService.cs D:/Temp/TestService.wsdl

------------------------------------------------------------------------------------------------------------------------------

/out:后是将wsdl文件保存成代理类,代理类放的位置。需要有d:/Temp文件夹,否则会提示找不到路径。TestService.cs文件不用建,工具会将文件自动生成。

D:/Temp/TestService.wsdl是wsdl文件在本地的地址,可以直接将文件拖拽到dos控制台中。回车即可将wsdl文件转换为代理类。

生成的代理类:

上图的URL可以改,当服务端webservice改了url的时候,可以直接在代理类里面改此处的url,可以说比添加web引用更加灵活。

可以看到生成的代理类中也有方法的异步操作以及异步完成后的事件,可以说和使用“添加web引用”的方式来编码是一模一样的。

服务安全代理(securityproxy)介绍 war包 运行环境为 jdk1.5+tomcat5+ant+axis2v1.4.1+rampartv1.4 需要的lib如图lib-need-pic.jpg所示(可从官网下载这些lib) 1)webservice的安全需求 安全性 服务访问需要适当的访问控制:认证授权、机密性、完整性。安全性可以分为3级。 灵活性 设计态服务无需考虑安全治理,所以要求提供灵活的的运行态安全标准支持。服务的安全架构是影响服务安全灵活性的重要因素。 适应性 在各种平台下对服务提供统一的安全、审计、日志管理。简化服务提供和服务管理,服务安全及基础设施实施复杂性小。 2)服务安全代理(securityproxy)实现原理 通过设置安全策略(Policy)对服务(webservice)提供实时的访问管理和控制。 通过策略来控制和管理对服务的访问,能够简单灵活的实现访问服务时的安全机制。 服务安全代理(securityproxy)在管理节点(Managed Endpoint)中实现策略 服务安全代理(securityproxy)改变了客户端与服务节点的连接结构 ——它创建了一个管理节点插入到客户端与服务节点之间 一个节点(Endpoint)指对应某个服务的地址(URL)。 随后客户端直接与管理节点连接,而不是与实际的服务节点连接 在管理节点中,服务安全代理(securityproxy)拦截消息并验证他们是否符合策略。 把安全的实现从复杂的编程中解脱出来,通过策略配置实时的组成不同的策略集合实施起来。 通过服务安全代理(securityproxy)可以 ●Authentication(认证) 发送消息时添加用户名令牌或数字签名。接收消息时验证用户名令牌或数字签名。 ●Encryption(加密) 在两个节点之间加密信息。发送信息时加密,接收信息时自动解密。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值