对网页设计的认识和理解,合肥网站建设 乐云seo,什么是营销型网站设计,淮南网云小镇房价C# .Net6 指定WSDL, 调用该接口服务。
IDE#xff1a; Microsoft Visual Studio Community 2022 (64 位)平台#xff1a;.Net6协议#xff1a;Soap协议 Xml格式
功能
需要开发一个前置机程序#xff0c; 用于和硬件程序交互#xff0c;已知条件是#xff1a;嵌入式同事…C# .Net6 指定WSDL, 调用该接口服务。
IDE Microsoft Visual Studio Community 2022 (64 位)平台.Net6协议Soap协议 Xml格式
功能
需要开发一个前置机程序 用于和硬件程序交互已知条件是嵌入式同事提供另一个约定好的*.wsdl文件作为双方通信的Webservice接口协议对方是服务端前置机是客户端
实现
通过WSDL文件生成WEB服务
注意这里我的VS2022的提示步骤和网上查到的操作步骤略有不同下面的步骤是我的VS2022的操作步骤 首先在 VS2022 中打开 .NET 6 项目或者新建一个 .NET 6 项目。 在“解决方案资源管理器”中右键单击项目名称然后选择“添加”-“服务引用”。 在“添加服务引用”窗口中有三个选项 OpenAPIgRPCWCF Web Service 这里选择 WCF Web Service进入窗口“添加新的WCF Web Service服务引用” 点击“浏览”按钮然后从文件系统中选择你的 WSDL 文件。 选中 WSDL 文件后服务引用的配置将在窗口下方显示出来。这里可以在下面的输入框修改命名空间为你想要的名称点击下一步在新窗口中可以指定数据类型选项默认不需要改点击“完成”。 此时VS2022 会根据你的 WSDL 文件生成 Web 服务的代码即原Webservice服务的代理类。 还有一个生成Webservice服务代理类的方法 用wsdl.exe工具的方式指令是wsdl /language:c# /n:Fu /out:d:/MyService.cs C:\Users\Administrator\Desktop\MyService.wsdl “d:/MyService.cs”是输出目录“C:\Users\Administrator\Desktop\MyService.wsdl”是源wsdl文件的位置 具体用法可以使用搜索引擎查询这里不再赘述。
调用该WebService的方法 public static async Task TestCallWs() {mydemo.TestMyClient serv null;try{var binding new BasicHttpBinding();var endpoint new EndpointAddress(FSUURL);serv new mydemo.TestMyClient(binding, endpoint);var result await serv.invokeAsync(FSU_Params);Console.WriteLine(返回接口数据\n result);}catch(HttpRequestException e){Console.WriteLine(e.Message);}finally{if (serv ! null) {serv.Close();}}}完结和思考
其实我一直是想用HttpClient来调用这个Webservice因为很多旧的网络请求类都被建议使用HttpClient代替HttpClient也支持Soap协议官网也说HttpClient是网络请求的优化成果性能更好但一直调用不通。不知道是WSDL定义不够规范还是代码的问题。暂时先用 BasicHttpBinding来实现。后续会继续琢磨。