发布了使用 ASP.NET 创建的 Web 服务之后,可以使用浏览器通过 HTTP-GET 或 HTTP-POST 调用 Web 服务,从而测试其功能。 在浏览器中访问其 .asmx 文件,然后单击指向 Web 服务方法的超链接,或通过向 .asmx URL 追加查询字符串直接访问各个方法。
| .gif) 注意: | 
|---|
| 默认情况下,使用 ASP.NET 创建的 Web 服务能够支持多个协议,包括 SOAP over HTTP 以及 HTTP-GET 和 HTTP-POST 的实现(在响应中返回非 SOAP XML)。 | 
使用 HTTP-GET 在浏览器中测试 Web 服务
- 将 Web 服务部署到 Web 服务器。 有关更多信息,请参见 XML Web services 发布和部署。 
- 访问 Web 浏览器,并使用以下格式在地址栏中输入 Web 服务的 URL: - https://servername/apppath/webservicename.asmx- 路径部分 - 值 - 服务器名称 - 在其上部署 Web 服务的服务器的名称。 - 应用程序路径 - 虚拟目录的名称以及 Web 应用程序路径的其余部分。 - Web 服务名称.asmx - Web 服务 .asmx 文件的名称。 - 例如,假设您已发布了一项名为 - StockServices的 Web 服务。 发布时,此服务的基 URL 为 http://<服务器名称>/apppath/StockServices.asmx。 通过在浏览器的地址栏中输入此 HTTP-GET 请求,可以测试此服务:- http://<servername>/apppath/StockServices.asmx- 作为对此请求的响应,服务器将显示 Web 服务的 HTML 说明页。 
- Web 服务的 HTML 说明页显示特定 Web 服务支持的所有 Web 服务方法。 链接到所需的 Web 服务方法并输入必需的参数,以测试该方法并查看 XML 响应。 
使用 HTTP-GET 在浏览器中直接测试 Web 服务方法
- 将 Web 服务部署到 Web 服务器。 有关更多信息,请参见 XML Web services 发布和部署。 
- 访问 Web 浏览器,并使用以下格式在地址栏中输入 Web 服务方法的 URL: - https://servername/vdir/webservicename.asmx/Methodname?parameter=value- 参数 - 值 - 服务器名称 - 在其上部署 Web 服务的服务器的名称。 - 应用程序路径 - 虚拟目录的名称以及 Web 应用程序路径的其余部分。 - Web 服务名称.asmx - Web 服务 .asmx 文件的名称。 - 方法名称 - Web 服务公开的公共方法的名称。 如果留为空白,则显示 Web 服务的说明页,其中会列出 .asmx 文件中提供的每个公共方法。 (可选) - 参数 - 方法所需要的任何参数的相应参数名称和值。 如果留为空白,则显示 Web 服务的说明页,其中会列出 .asmx 文件中提供的每个公共方法。 (可选) .gif) 注意: 注意:- 此语法中的 Web 服务方法名区分大小写,但服务器、项目和 Web 服务名称不区分大小写。 - 例如,假设前一过程中的 - StockServicesWeb 服务包含一个名为- GetQuote的 Web 服务方法,该 Web 服务方法接受以股票符号作为参数,并以双精度浮点数的形式返回价格。 在浏览器的地址栏中输入以下 HTTP-GET 请求,以测试此方法:- http://<服务器名称>/apppath/StockServices.asmx/GetStockQuote?tickerName=MSFT 
- 服务器发送包含 XML 文档的响应,将在浏览器中显示该文档。 对于 - GetQuote示例,XML 具有您请求的股票的当前价格。 结果可能类似于:- <?xml version="1.0" ?>- <double>74.5</double>
使用 HTTP-POST 在浏览器中测试 Web 服务
- 将 Web 服务部署到 Web 服务器。 有关更多信息,请参见 XML Web services 发布和部署。 此过程使用以下 Web 服务作为一个示例,该 Web 服务作为可从 https://www.contoso.com 站点的虚拟根目录访问的 math.asmx 文件来部署: - <%@ WebService Language="C#" Class="Math" %> using System.Web.Services; public class Math : WebService { [ WebMethod ] public int Add(int num1, int num2) { return num1+num2; } [ WebMethod ] public int Subtract(int num1, int num2) { return num1-num2; } }- <%@ WebService Language="VB" Class="Math" %> Imports System.Web.Services Public Class Math Inherits WebService <WebMethod> _ Public Function Add(num1 As Integer, num2 As Integer) As Integer Return num1 + num2 End Function <WebMethod> _ Public Function Subtract(num1 As Integer, num2 As Integer) As Integer Return num1 - num2 End Function End Class
- 使用将其 method 属性设置为 POST 的窗体创建一个 HTML 页。 使用以下格式: - <form method=POST action='https://www.contoso.com/math.asmx/Subtract'> <input type="text" size="5" name='num1'\"></td> - <input type="text" size="5" name='num2'\"></td> = <input type=submit value="Subtract"> </td> </form>- 参数 - 值 - 方法 - POST. 如果要使用 HTTP-POST 测试 Web 服务,请使用 POST。 - 操作 - Web 服务方法的 URL。 在上面的示例中,math.asmx 是 Web 服务, - Subtract是 Web 服务方法。- type="text" - 对于 Web 服务方法的每个参数,创建 type 属性设置为 "text" 的 input 标记。 这样,您便可以在文本输入控件中键入参数值。 - name='num1' - Web 服务方法参数的名称。 在窗体中添加与 Web 服务方法中的参数数量相同的文本输入控件。 例如,如果 Web 服务方法有三个参数,则需要三个文本输入控件,并且每个控件将其 name 属性设置为对应参数的名称。 - type=submit - 添加一个提交按钮,以便将数据回发至 Web 服务方法。 
- 访问 Web 浏览器,并输入在上一步中创建的 HTML 文档的 URL。 - 此时将显示在上一步中创建的 HTML 文档。 
- 在本文框中输入 Web 服务方法的相应值,然后单击**“submit”(提交)**按钮。 - 例如,如果在该示例的 - SubtractWeb 服务方法的两个文本框中分别输入 6 和 3,则会返回以下结果:- <?xml version="1.0" ?> <int xmlns="http://tempuri.org/">3</int>
请参见
任务
如何:浏览现有的使用 ASP.NET 创建的 XML Web services
如何:从浏览器访问 XML Web services
概念
生成 XML Web services 客户端
Web 服务发现
其他资源
.gif)
版权所有 (C) 2007 Microsoft Corporation。保留所有权利。