如何:从浏览器访问 XML Web services

发布了使用 ASP.NET 创建的 Web 服务之后,可以使用浏览器通过 HTTP-GET 或 HTTP-POST 调用 Web 服务,从而测试其功能。 在浏览器中访问其 .asmx 文件,然后单击指向 Web 服务方法的超链接,或通过向 .asmx URL 追加查询字符串直接访问各个方法。

Note注意:

默认情况下,使用 ASP.NET 创建的 Web 服务能够支持多个协议,包括 SOAP over HTTP 以及 HTTP-GET 和 HTTP-POST 的实现(在响应中返回非 SOAP XML)。

使用 HTTP-GET 在浏览器中测试 Web 服务

  1. 将 Web 服务部署到 Web 服务器。 有关更多信息,请参见 XML Web services 发布和部署

  2. 访问 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 说明页。

  3. Web 服务的 HTML 说明页显示特定 Web 服务支持的所有 Web 服务方法。 链接到所需的 Web 服务方法并输入必需的参数,以测试该方法并查看 XML 响应。

使用 HTTP-GET 在浏览器中直接测试 Web 服务方法

  1. 将 Web 服务部署到 Web 服务器。 有关更多信息,请参见 XML Web services 发布和部署

  2. 访问 Web 浏览器,并使用以下格式在地址栏中输入 Web 服务方法的 URL:

    https://servername/vdir/webservicename.asmx/Methodname?parameter=value
    
    参数

    服务器名称

    在其上部署 Web 服务的服务器的名称。

    应用程序路径

    虚拟目录的名称以及 Web 应用程序路径的其余部分。

    Web 服务名称.asmx

    Web 服务 .asmx 文件的名称。

    方法名称

    Web 服务公开的公共方法的名称。 如果留为空白,则显示 Web 服务的说明页,其中会列出 .asmx 文件中提供的每个公共方法。 (可选)

    参数

    方法所需要的任何参数的相应参数名称和值。 如果留为空白,则显示 Web 服务的说明页,其中会列出 .asmx 文件中提供的每个公共方法。 (可选)

    Note注意:

    此语法中的 Web 服务方法名区分大小写,但服务器、项目和 Web 服务名称不区分大小写。

    例如,假设前一过程中的 StockServices Web 服务包含一个名为 GetQuote 的 Web 服务方法,该 Web 服务方法接受以股票符号作为参数,并以双精度浮点数的形式返回价格。 在浏览器的地址栏中输入以下 HTTP-GET 请求,以测试此方法:

    http://<服务器名称>/apppath/StockServices.asmx/GetStockQuote?tickerName=MSFT

  3. 服务器发送包含 XML 文档的响应,将在浏览器中显示该文档。 对于 GetQuote 示例,XML 具有您请求的股票的当前价格。 结果可能类似于:

    <?xml version="1.0" ?>

    <double>74.5</double>

使用 HTTP-POST 在浏览器中测试 Web 服务

  1. 将 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
    
  2. 使用将其 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 服务方法。

  3. 访问 Web 浏览器,并输入在上一步中创建的 HTML 文档的 URL。

    此时将显示在上一步中创建的 HTML 文档。

  4. 在本文框中输入 Web 服务方法的相应值,然后单击**“submit”(提交)**按钮。

    例如,如果在该示例的 Subtract Web 服务方法的两个文本框中分别输入 63,则会返回以下结果:

    <?xml version="1.0" ?> 
    <int xmlns="http://tempuri.org/">3</int>
    

请参见

任务

如何:浏览现有的使用 ASP.NET 创建的 XML Web services
如何:从浏览器访问 XML Web services

概念

生成 XML Web services 客户端
Web 服务发现

其他资源

创建 XML Web services 客户端

Footer image

版权所有 (C) 2007 Microsoft Corporation。保留所有权利。