C#进阶-ASP.NET WebForms调用ASMX的WebService接口
ASMX 文件在 ASP.NET WebForms 中提供了创建 Web 服务的便捷方式,通过公开 Web 方法,答应远程客户端调用这些方法并获取数据。本文介绍了 ASMX 文件的根本功能、如何定义 WebService 接口、通过 HTTP 和 SOAP 请求调用 WebService 接口,以及利用 Postman 进行测试的方法。掌握这些知识,可以帮助你在 ASP.NET WebForms 项目中更好地利用 ASMX 文件创建和调用 Web 服务。一、名词简介
1、ASMX文件
ASMX 文件是 ASP.NET 中用于创建 Web 服务的文件。Web 服务是用于跨网络传输数据和服务的标准方法,使差别平台和编程语言的系统可以相互通讯。通过 ASMX 文件,开发者可以创建基于 SOAP 协议 / HTTP 协议 的 Web 服务,这些服务可以被各种客户端(如浏览器、移动应用程序、其他服务器应用程序)调用。
ASMX 文件重要功能包罗:
[*]提供跨平台、跨语言的服务接口。
[*]支持标准的 SOAP 协议进行数据互换。
[*]能够通过 HTTP/HTTPS 协议传输数据。
[*]答应公开 Web 方法,这些方法可以被远程客户端调用。
https://img-blog.csdnimg.cn/direct/51a7441f83464739855b6d6cce28dc95.png
简答来说,就是 ASP.NET 提供的 Web 接口文件。
2、WebService接口
我们可以 在ASMX 文件中创建 WebService 接口, 定义 Web 服务提供的具体功能。每个接口由一组公开的方法(即 Web 方法)组成,这些方法可以通过 HTTP 请求被调用。
以下是一个简单的 ASMX 文件示例:
using System.Web.Services;
namespace TestAsmxProject.Asmx
{
/// <summary>
/// Test 的摘要说明
/// </summary>
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
//
public class Test : System.Web.Services.WebService
{
public string HelloWorld()
{
return "Hello World";
}
public int Add(int a, int b)
{
return a + b;
}
}
}
https://img-blog.csdnimg.cn/direct/10958c3d00b24ac6b4c1800013442735.png
在上述示例中,HelloWorld 和 Add 是两个公开的 Web 方法,可以被客户端调用。
二、创建ASMX的WebService接口
1、创建ASP.NET WebForms项目
Visual Studio 2019 应用内新建项目,选择 ASP.NET Web应用程序(.NET Framework)。
https://img-blog.csdnimg.cn/direct/7c5e593cb58f4ee0a17906c37cbcd1ee.png
项目名称起名为 TestAsmxProject,框架选择 .NET Framework 4.7.2。
https://img-blog.csdnimg.cn/direct/8010d1163edd43b2844947589a19fcee.png
选择 Web Forms,取消右侧 为 HTTPS 设置 的选项。
https://img-blog.csdnimg.cn/direct/379cd0ca627c4d2d80f6c728d280fcb3.png
项目创建成功,目次如下:
https://img-blog.csdnimg.cn/direct/50614b6e03574235a82767823f454e81.png
我们点击上方 IIS Express 按钮,启动一下项目,看看是否能顺利运行。
https://img-blog.csdnimg.cn/direct/84f281f3a5494198a216cae8e3dc8f5f.png
启动成功。
https://img-blog.csdnimg.cn/direct/f0cc43be04ad40159426bc0d1997103e.png
2、创建ASMX接口程序
接着,我们创建 ASMX 文件。这里,我先创建了一个名为 Asmx 的文件夹,在文件夹里新建项。
https://img-blog.csdnimg.cn/direct/7b4f18388dbe428bab8b65494380cd54.png
添加新项 中选择 Web 服务 (ASMX),命名为 Test.asmx。
https://img-blog.csdnimg.cn/direct/bfc9afa993b74b2eb8c1ff77ce852a49.png
双击打开新建好的 Test.asmx,内里存在一个默认的 HelloWorld 方法。
https://img-blog.csdnimg.cn/direct/ac0ab53ab1ea4233b76758364382fb12.png
我们在此基础上添加一个 Add 方法。
https://img-blog.csdnimg.cn/direct/982dd9c7d5ee4818bfcea89f933a1c9e.png
增加后,Test.asmx 代码如下:
using System.Web.Services;
namespace TestAsmxProject.Asmx
{
/// <summary>
/// Test 的摘要说明
/// </summary>
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
//
public class Test : System.Web.Services.WebService
{
public string HelloWorld()
{
return "Hello World";
}
public int Add(int a, int b)
{
return a + b;
}
}
} 3、测试ASMX接口程序
我们重新启动项目,测试 Test.asmx 接口程序。
程序启动后,浏览器输入 http://localhost:52028/Asmx/Test.asmx,页面如下:
https://img-blog.csdnimg.cn/direct/bc0258a562e54110af8858c30ff18136.png
这个是 ASP.NET 自带的 ASMX 接口程序的调试页面。
我们先测试 HelloWorld 接口,点击 HelloWorld。
https://img-blog.csdnimg.cn/direct/e32306784b4c4faba452261fb355ee8f.png
这是一个输入参数的页面,因为我们这个是无参方法,以是,直接点击调用。
返回的XML格式结果如下:
<string xmlns="http://tempuri.org/">Hello World</string>
https://img-blog.csdnimg.cn/direct/d291d63f33ba47169ad6c044e2018f62.png
下面,我们再来测试 Test.asmx 接口程序的有参方法 Add。
点击 Add,进入需要输入参数的页面。
输入测试参数 (好比我这里写的 a=1、b=2),点击调用。
https://img-blog.csdnimg.cn/direct/47e4f9d5db7640d89cfbe4fc6d16e998.png
返回的XML格式结果如下:
<int xmlns="http://tempuri.org/">3</int>
https://img-blog.csdnimg.cn/direct/d291fb60c1064279a42977aedd20d7f1.png
以上就是调试 ASMX 接口程序的根本方法,但是我们现实开发中,肯定是通过程序来调用,以是我们需要通过网络协议请求,下面是两种常用的网络协议请求的示例。
在答应外部系统调用该WEB服务之前,我们需要放开下面这行代码的解释:
https://img-blog.csdnimg.cn/direct/2367ce906d3443e3b4a246b8da514086.png
三、HTTP协议请求WebService接口
通过 HTTP 请求可以调用 Web 服务接口。利用工具(如浏览器、Postman 等)发送 HTTP 请求,并查看响应结果。以下是利用 Postman 调用 Add 方法的示例步骤:
[*]打开 Postman,创建一个新的请求;
[*]设置请求类型为 GET 或 POST;
[*]输入 Web 服务的 URL,例如:http://localhost:52028/Asmx/Test.asmx/Add;
[*]如果是 POST请求,在 Body 里需要填写参数,GET 填在 Params 里;
[*]点击 Send 按钮发送请求,并查看响应结果;
示例请求:
POST /Asmx/Test.asmx/Add HTTP/1.1
Host: localhost:52028
示例参数:
{
"a": 1,
"b": 2
} 响应结果:
{
"d": 3
} 如图:
https://img-blog.csdnimg.cn/direct/af73532086e64cdaaf0bbbba460a787a.png
四、SOAP协议请求WebService接口
SOAP 是一种基于 XML 的协议,用于在网络上互换布局化信息。通过 SOAP 请求,可以调用 Web 服务的公开方法。我们利用 SOAP协议 调用 Add 方法:
利用 Postman 发送 SOAP 请求的步骤:
[*]打开 Postman,创建一个新的请求;
[*]设置请求类型为 POST;
[*]输入 Web 服务的 URL,例如:http://localhost:52028/Asmx/Test.asmx;
[*]如果是 POST请求,在 Body 里需要填写 SOAP 格式的参数;
[*]点击 Send 按钮发送请求,并查看响应结果;
示例请求:
POST /Asmx/Test.asmx HTTP/1.1
Host: localhost:52028
Content-Type: text/xml; charset=utf-8 示例参数:
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Add xmlns="http://tempuri.org/">
<a>3</a>
<b>5</b>
</Add>
</soap:Body>
</soap:Envelope> 响应结果:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<AddResponse xmlns="http://tempuri.org/">
<AddResult>3</AddResult>
</AddResponse>
</soap:Body>
</soap:Envelope> 如图:
https://img-blog.csdnimg.cn/direct/a5f528edf8584325bb527f24fc1d6fc9.png
五、ASMX功能和利用总结
我们通过以下表格来概述ASMX 文件的重要功能和利用方法:
阐明文件类型.asmx 文件重要功能提供基于 SOAP 协议的 Web 服务,答应差别平台和语言的系统进行通讯。协议SOAP(Simple Object Access Protocol)传输协议HTTP/HTTPS重要用途创建跨平台、跨语言的数据和服务接口。关键组件WebService 类、WebMethod 属性、SOAP 请求和响应。调用工具Postman、浏览器、编程语言(如 C#、Java)调试方法利用调试工具(如 Visual Studio 的断点调试、日志输出)安全性可以通过 SoapExtension 实现 IP 拦截和其他安全措施。 ASMX 文件在 ASP.NET WebForms 中提供了创建 Web 服务的便捷方式,通过公开 Web 方法,答应远程客户端调用这些方法并获取数据。ASMX 文件支持标准的 SOAP 协议,可以通过 HTTP/HTTPS 进行数据传输,使其成为跨平台、跨语言系统集成的理想选择。
通过本文,我们介绍了 ASMX 文件的根本功能、如何定义 WebService 接口、通过 HTTP 和 SOAP 请求调用 WebService 接口,以及利用 Postman 进行测试的方法。掌握这些知识,可以帮助你在 ASP.NET WebForms 项目中更好地利用 ASMX 文件创建和调用 Web 服务。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]