动态调用Web Service

原创 2004年07月08日 11:24:00

在visual stdio .net的开发环境中,使用web service通常的办法是通过添加WEB引用。

在实际的编程过程中出现了一个问题:添加的web引用在窗体中使用正常,在类中却不能使用。

那么,如何解决呢?

我们可以通过WSDL工具来生成web service的代理类,而生成的代理类是可以被类使用的。

在命令提示处,使用 Wsdl.exe 创建代理类,(至少)指定到 XML Web services 或服务说明的 URL 或到保存的服务说明的路径。

 /language:language /protocol:protocol /namespace:myNameSpace /out:filename /username:username /password:password /domain:domain 

<?XML:NAMESPACE PREFIX = MSHelp />

生成的代理类详细信息

Wsdl.exe 用于生成代理类时,将以指定的语言生成一个源文件。该文件包含公开 XML Web services 每个 XML Web services 方法的同步和异步方法的代理类。例如,如果一个 XML Web services 包含一个名为 Add 的 XML Web services 方法,则代理类具有以下方法用来调用 Add XML Web services 方法:AddBeginAddEndAdd。代理类的 Add 方法用于与 Add XML Web services 方法进行同步通信,但 BeginAddEndAdd 方法用于和 XML Web services 方法进行异步通信。有关与 XML Web services 方法异步通信的更多信息,请参见与 XML Web services 进行异步通信

生成的代理类的每个方法都包含适当的代码与 XML Web services 方法进行通信。如果在 XML Web services 和代理类通信过程中出现错误,则将引发一个异常。有关处理异常的详细信息,请参见在 XML Web services 中处理和引发异常

在 XML Web services 方法和关联的代理类方法中的定义顺序之间,参数顺序可能有所不同。在多数情况下,参数顺序相同。但是,如果 XML Web services 需要 Document 格式的 SOAP 消息,则将出现一种参数顺序不相同的情况。如果 XML Web services 方法在定义输入参数之前定义了输出参数,则在代理类中输出参数放置在所有输入参数之后。例如,在下面的代码示例中,XML Web services 方法 MyWebMethod 在声明 inStr 输入参数之前声明了 outStr 输出参数。但是,在代理类中,在声明 outStr 之前先声明 inStr 参数。

在某些情况下,由 WSDL.exe 生成的代理类会使用一种不常见的命名方法,将对象强制转换成服务说明中指定的类型。因此,代理类中的生成类型可能不是开发人员想要或预期的类型。例如,当 WSDL.exe 在服务说明中遇到 ArrayList 类型时,它将在生成的代理类中创建一个“对象数组”。若要确保对象类型转换正确,请打开包含生成的代理类的文件,将所有不正确的对象类型更改成所需的对象类型。

 

开发:随笔记录之 CXF 动态调用Webservice

public class WebServiceUtil2 { static Logger log = Logger.getLogger(WebServiceUtil2.class); ...
  • shijing266
  • shijing266
  • 2014年04月25日 11:55
  • 2299

java客户端动态调用webservice服务

之前调用webservice服务一直用jdk或者eclipse快速生成客户端代码,这种方式实现起来也比较容易,据说这种方法执行效率也是最好的(动态调用也会动态生成客户端代码)。但是我最近在项目发现这种...
  • u010509052
  • u010509052
  • 2016年09月28日 14:35
  • 5507

动态调用web service

        //利用service参照,得到web service的client,在app.config中有。         MyServiceReference.MyServiceClassN...
  • pyhsky
  • pyhsky
  • 2008年09月22日 11:56
  • 337

JAX-WS动态调用Web Service

1、调用方式介绍   调用Web Service的Java客户端一般采用以下三种方式:   生成的stub、proxy(动态代理)以及dispatch(动态调用接口)。dispatch又分为paylo...
  • majun_run
  • majun_run
  • 2010年12月28日 15:51
  • 159

cxf动态调用WebService

最近突然发现原来调用webservice服务端如此的方便,于是自己看了看,这种是使用cxf的JaxWsDynamicClientFactory动态调用的,主要时间花在了找包的时间上,另外,这种方式虽然...
  • yuanbin4311
  • yuanbin4311
  • 2015年04月06日 17:59
  • 4620

关于.NET中动态调用Web Service服务的方法心得。

介绍.NET中动态调用Web Service的相关技术文章。在.NET中调用Web Service服务(WSDL)有两种可行的方法:1、通过Web 服务引用,在本地生成所要调用服务的类;(静态方法)2...
  • xianbin
  • xianbin
  • 2007年06月28日 17:33
  • 7218

C#动态调用Web服务的3种方法

我们在开发C# WinForm时,有时会调用Web服务,服务是本地的当前好办,只要在Project中的Web References中引入就可以在代码中直接创建一个Web服务对象来引用,其实其原理是C#...
  • jjhua
  • jjhua
  • 2016年02月21日 22:28
  • 7919

.NET动态调用Web Service服务

介绍.NET中动态调用Web Service的相关技术文章。 在.NET中调用Web Service服务(WSDL)有两种可行的方法: 1、通过Web 服务引用,在本地生成所要调用服务的类;(静态...
  • zhensoft163
  • zhensoft163
  • 2009年09月25日 11:23
  • 1543

动态调用WEB Service VB.NET版

  Public Shared Function InvokeWebServices()Function InvokeWebServices(ByVal strUrl As String, ByVal...
  • fmideal
  • fmideal
  • 2007年07月30日 11:24
  • 1269

Web Service 动态调用的学习

今天学习了下如何动态调用WebService,记录下学习笔记。 具体步骤: 1. 从目标 URL 下载 WSDL 数据。 2. 使用 ServiceDescription 创建和格式化 WS...
  • bruce_hhu
  • bruce_hhu
  • 2013年05月13日 10:50
  • 324
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:动态调用Web Service
举报原因:
原因补充:

(最多只允许输入30个字)