场景

对接第三方系统提供接口文档中显示为asmx接口

 

访问接口返回数据格式为

 

xml中的数据格式为json数据。

需要在本地新建并模拟调试环境。

注:

博客:
霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主

实现

1、WebService

WebService是一种远程调用技术,也叫XML Web Service WebService,

是一种可以接收从Internet或者Internet上的其他系统中传递过来的请求,轻量级的独立的通信技术。

是通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。

asmx

.asmx是webservice服务程序的后缀名,ASP.NET 使用.asmx 文件来对Web Services的支持。

.asmx 文件和.aspx文件一样都属于文本文件。它包含在.aspx文件之中,成为ASP.NET应用程序的一部分。

asmx 是WEB服务文件,asmx.cs里有相关代码,属于B/S形式,用SOAP方式HTTP访问,

用XML返回可以返回基础类型和PUBLIC结构类型。

官网文档:

使用 ASP.NET Web 服务 (ASMX) - Xamarin | Microsoft Learn

 

使用 ASP.NET Web 服务 (ASMX)

ASMX 提供使用简单对象访问协议 (SOAP) 来生成发送消息的 Web 服务的功能。

 SOAP 是一种独立于平台且独立于语言的协议,用于生成和访问 Web 服务。

ASMX 服务的使用者不需要知道用于实现该服务的平台、对象模型或编程语言的任何内容。

他们只需要了解如何发送和接收 SOAP 消息。

官网提供示例代码下载:

Xamarin.Forms - TodoASMX - Code Samples | Microsoft Learn

GitHub - xamarin/xamarin-forms-samples: Sample apps built using the Xamarin.Forms framework

 

2、VS2019-新建项目

模板选择ASP.NET Web 应用程序

 

然后选择空的项目模板

 

右击工程-添加-新建项目-Web 服务(ASMX)

  

新建成功之后

 

会自动生成一个测试服务HelloWorld并返回执行字符串。

2、运行web服务并测试

点击VS上方IIS Express 会在默认浏览器中访问

 

点击HelloWorld,返回格式如下

 

需要模拟对接接口的返回结果,将Hello World字符串改为json数据接口,注意json字符串转义。

 

修改之后重新运行查看

 

3、通过IIS发布WebService服务

VS中右击工程-发布-目标文件夹--浏览选择文件夹位置-注意选择在发布前删除所有现有文件,点击发布按钮发布。

 

4、IIS部署网站

WebService怎样在IIS上部署:

WebService怎样在IIS上部署_iis怎么部署webservice_霸道流氓气质的博客-CSDN博客

 参考以上流程,注意配置打开目录浏览和配置文件夹权限。

 

可直接在IIS中点击浏览网站打开浏览地址。

5、WebServices远程访问提示,测试窗口只能来自本地计算机的请求。

以上服务在本地访问可以,在另一台电脑上远程访问时提示如上。

需要修改开启远程访问

在web.config的<system.web></system.web>中间加入如下配置节内容

<webServices>
         <protocols>
            <add name="HttpSoap"/>
            <add name="HttpPost"/>
            <add name="HttpGet"/>
            <add name="Documentation"/>
         </protocols>
</webServices>

 

然后重新发布即可。

6、下载上面官方提供的示例代码

打开xamarin-forms-samples\WebServices\TodoASMX\TodoASMX下的解决方案。

将TodoASMXService设置启动项目并启动

 

启动效果

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐