如何:从浏览器访问 XML Web services
本主题专门介绍一项旧有技术。现在应通过使用以下链接来创建 XML Web 服务和 XML Web 服务客户端: Windows Communication Foundation.
发布了使用 ASP.NET 创建的 Web 服务之后,可以使用浏览器通过 HTTP-GET 或 HTTP-POST 调用 Web 服务,从而测试其功能。在浏览器中访问其 .asmx 文件,然后单击指向 Web 服务方法的超链接,或通过向 .asmx URL 追加查询字符串直接访问各个方法。
注意: |
---|
默认情况下,使用 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 文件中提供的每个公共方法。(可选)
注意: 此语法中的 Web 服务方法名区分大小写,但服务器、项目和 Web 服务名称不区分大小写。 例如,假设前一过程中的
StockServices
Web 服务包含一个名为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”(提交)**按钮。
例如,如果在该示例的
Subtract
Web 服务方法的两个文本框中分别输入 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 服务发现