C#调用WebService的3种方式:直接调用、根据wsdl生成webservice的.cs文件及生成dll调用、动态调用
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
关于soapheader调用,可以参考:C#调用Java的WebService添加SOAPHeader验证 1.直接调用 已知webservice路径,则可以直接 添加服务引用--高级--添加web引用 直接输入webservice URL。这个比较常见也很简单,即有完整的webservice文件目录如下图所示: 也可以在本地IIS根据webservice文件目录新发布一个webservice,然后程序动态调用,修改Url:
2.根据wsdl文件生成webservice 的.cs文件 及 生成dll C#调用 有时没有这么多文件,只有wsdl文件,wsdl文件可以有别人提供或者根据webservice地址获取: http://localhost:8888/WS.asmx?wsdl
Visual Studio 2013->Visual Studio Tools->VS2013 开发人员命令提示: 命令行输入: wsdl E:\WS.wsdl /out:WS.cs E:\WS.wsdl 是wsdl文件存储路径,也可以是http://localhost:8888/WS.asmx?wsdl,不报错的话,看路径下 Program Files\Microsoft Visual Studio 12.0\WS.cs已经自动生成。 .cs文件看函数声明,结构体等都非常方便,然后命令行执行:
csc /t:library WS.cs 同样的路径下,生成了WS.dll,拷贝出去放到项目文件夹下,C# winform程序也可以添加引用了。生成的文件默认在这里: 默认生成的SOAP版本为1.1,可以
G:\Program Files\Microsoft Visual Studio 12.0>wsdl E:\e.wsdl /protocol:SOAP12 /out:e.cs 来指定1.2 3.C# 动态调用WebService 在C#程序中,若要调用WebService,一般是采用"添加Web引用"的方式来实现的。但如果此WebService的URL是在程序运行过程中才能获得的,那怎么办呢?那就必须是"动态"调用这个WebService了。举个使用它的例子: [] args = [, ); DataTable dt = WebServiceHelper.InvokeWebService(, , args) DataTable; 恩~有点麻烦,这意味着每次我都要把想调用的函数的参数组织成一个object[]才行,且每次调用InvokeWebService都是在内存中创建动态程序集,效率极低。则次种方法绝对没有直接用“实例名.方法名(参数列表)”来的舒服。我把它放到一个叫WebServiceHelper.cs的类里面了。
参考 http://blog.csdn.net/chuxiamuxiang/article/details/5731988 该文章在 2023/8/22 15:29:06 编辑过 |
关键字查询
相关文章
正在查询... |