您可以在任何能够向服务器发出 HTTP 请求并对响应进行解析的应用程序中使用服务器对象扩展 (SOE)。SOE 的输入和输出都是简单类型,比如数字、文本字符串以及 XML 和 JSON 对象。消费应用程序 (Consuming Application) 本身不需要对 ArcObjects 有任何的了解。
您会经常在服务目录中对 SOE 进行测试(假设您当前正在使用 REST SOE),然后编写代码以在客户端应用程序中使用 SOE。
在服务目录中测试 SOE
通过向 SOE 提交简单类型,您可以在服务目录中测试 REST Web 服务 SOE。在地图或影像服务上启用 SOE 后,导航至“服务目录”中的服务页面。在页面的底部,您会看到 SOE 列在“支持的扩展”下面。(如果未显示,请与 ArcGIS Server 管理员进行核实以确定是否已经清除了 REST 缓存。)
单击服务目录中的 SOE,您将可以单击和浏览您所提供的资源和操作。单击某个操作,您会看到一些可以用来测试 SOE 请求和响应的输入框。您应获得一个返回简单 JSON 或 HTML 的响应。
在客户端应用程序中使用 SOE
当您以 REST Web 服务的形式提供 SOE 时,您将可以在 Esri Web 或移动 API 中使用这一 SOE。无论使用哪种 API,处理 SOE Web 服务都需要执行如下操作:
-
从 Web 服务发出请求 - 包括建立一个参数列表并向服务器发送完整的 URL
-
对响应进行处理 - 需要了解响应的格式并知道如何解析此信息,以便在应用程序中执行一些有用的操作。
虽然编码模式相似,但在 ArcGIS API for JavaScript 中处理 SOE 时所用的类会各不相同。例如,在 API 中可设置一个使用 JSON 的变量来存储 SOE 的所有输入参数。然后,使用 esri.request() 方法来执行 Web 服务调用。其响应是一个 JSON 对象。