在客戶端程式中使用REST SOE
關於在客戶端中使用REST SOE
一旦你在Manager中部署了你的REST SOE,並且早某個服務中起用了它,那麼你就可以在客戶端程式中使用它了。因為SOE的本質是一個Web服務,它接受一些簡單型別的變數作為引數,比如string、double等等。最複雜的可能是向你的SOE中提交表示一系列geometry頂點的JSON資料。
在服務目錄中測試SOE
由於你向Web服務中提交的都是簡單資料型別的資料,所以可以在服務目錄中測試你的SOE。在你的地圖服務中啟用了SOE之後,在服務目錄中導航到地圖服務頁面。在頁面的最底部,你將會看到所支援的擴充套件的SOE。(如果你沒有看到,你需要核查ArcGIS Server管理員是否清除了REST快取。)
如果你在服務目錄中單擊了SOE,你就可以單擊並瀏覽你的SOE所暴露出的資源以及操作。單擊某個操作,你將看到一些輸入框,你可以在其中輸入值已測試SOE的請求和響應是否正常。如果SOE執行正常的話,你應該會看到JSON的輸出結果或者是HTML響應。
編寫使用REST SOE的客戶端程式
無論你使用哪種客戶端API,使用SOE Web服務需要滿足以下條件:
對Web服務傳送請求——這包括構建引數列表並向伺服器傳送完整的Url
對響應結果進行處理——需要知道響應結果的資料格式並能夠在程式中知道如何正確解析出有用的資訊
ArcGIS API for JavaScript中使用REST SOE
如果你在用ArcGIS API for JavaScript開發客戶端程式,你可以使用esri.request()方法傳送Web服務請求。你首先構造一個JSON物件,該物件包含了請求所需要的所有的引數資訊,然後你需要傳遞content物件給esri.request並定義SOE的Url和回撥函式。結果是一個簡單的JavaScript物件。
[JavaScript]
var soeURL =
"http://myServer/ArcGIS/rest/services/Yellowstone/MapServer/exts/SpatialQuerySOEREST/SpatialQuery";
. . . var content = {
'location': "{x:" + point.x + ",y:" + point.y + "}", 'distance': distanceNumber,
'f': "json"
};
// Do the SOE query.
esri.request({
url: soeURL, content: content, callbackParamName: "callback", load: function
(response){
drawResponseGeometries(response.geometries); responseRecordsToGrid
(response.records);
}
, error: function(error){
console.log(error);
}
}
);
. . .
在上述程式碼示例中,SOE需要引數location、distance以及f(表示返回的資料格式)。這些引數值通過使用者填寫Web表單獲得,content物件通過這些資訊以JSON的形式構建了所需的所有的引數。
一旦content就緒,就可以通過esri.request()對SOE傳送請求了。需要注意的是該請求需要使用SOE REST方式的Url。
當然,你也必須定義一個回撥函式並決定如何使用返回結果。上面這個SOE返回了包含如下內容的JSON物件:
Geometries
Records
在回撥函式中(此處並沒編寫)可以將geometries以graphics的形式顯示在地圖上,將records以記錄的形式顯示在表格中。
在ArcGIS API for Flex中使用REST SOE
在ArcGIS API for Flex中,你可以通過擴充套件BaseTask類使用你的SOE。BaseTask中的Url屬性就是你的SOE的Url。你可以使用BaseTask的sendURLVariables方法向Web服務傳送請求。返回結果是Flex物件,你可以從中獲取不同的JSON物件。
在ArcGIS API for Silverlight中使用REST SOE
在ArcGIS API for Silverlight中,你可以使用標準的Silverlight程式碼傳送Web服務並處理JSON響應結果,這樣就可以使用SOE了。這些細節可以參考微軟的幫助文件:
How to: Make Requests to HTTP-Based Services(幫助你向SOE傳送請求)
Working with JSON Data
(幫助你處理響應結果)
你可以根據興趣檢視 JavaScript, Flex 和 Silverlight APIs中的幫助文件,裡面包含了對於特定API使用SOE的細節資訊。
相關文章
- 在Qt5中使用Http Rest客戶端請求並解析Json資料QTHTTPREST客戶端JSON
- 使用OAuth保護REST API並使用簡單的Angular客戶端OAuthRESTAPIAngular客戶端
- Jenkins 常用 REST API介紹(Java 客戶端)JenkinsRESTAPIJava客戶端
- Spring Cloud Netflix—宣告性REST客戶端:FeignSpringCloudREST客戶端
- 在.NET 6 中如何建立和使用 HTTP 客戶端 SDKHTTP客戶端
- mORMot 1.18 第18章 使用REST/JSON的客戶端/伺服器ORMRESTJSON客戶端伺服器
- 全鏈路非同步Rest客戶端 ESA RestClient非同步REST客戶端client
- ElasticSearch 高階 REST 客戶端翻譯 (待續......)ElasticsearchREST客戶端
- Spring Cloud實戰系列(二) - 客戶端呼叫Rest + RibbonSpringCloud客戶端REST
- FTP 客戶端使用教程FTP客戶端
- ftp客戶端,ftp客戶端軟體具體怎麼使用?FTP客戶端
- 在OwinSelfHost專案中獲取客戶端IP地址客戶端
- 在SelfHost專案中獲取客戶端IP地址客戶端
- dbus客戶端使用指南客戶端
- Spring Cloud Config客戶端使用SpringCloud客戶端
- 使用 Webix 建立 Email 客戶端WebAI客戶端
- NEO-GUI 客戶端使用GUI客戶端
- 在不安裝oracle客戶端的情況下,使用PLSQLOracle客戶端SQL
- zookeeper在Linux客戶端操作命令大全Linux客戶端
- keycloak~scope客戶端模板的使用客戶端
- 郵件客戶端的配置使用客戶端
- 命令列客戶端MySQL如何使用命令列客戶端MySql
- Curator(ZoooKeeper客戶端)使用詳解客戶端
- [jaeger] 二、客戶端使用 (Java版本)客戶端Java
- 中文版vnc客戶端,中文版vnc客戶端下載,中文版vnc客戶端如何使用?VNC客戶端
- Kubernetes客戶端認證(三)—— Kubernetes使用CertificateSigningRequest方式簽發客戶端證書客戶端
- ftp客戶端軟體,ftp客戶端軟體哪個好用,使用方法FTP客戶端
- 在容器服務中獲取客戶端真實源 IP客戶端
- golang實現tcp客戶端服務端程式GolangTCP客戶端服務端
- vnc windows客戶端,vnc windows客戶端下載,具體使用教程。VNCWindows客戶端
- 我的郵箱客戶端程式Popmail客戶端AI
- mqtt 客戶端MQQT客戶端
- dubbo客戶端客戶端
- Pulsar客戶端客戶端
- 使用 .NET MAUI 開發 ChatGPT 客戶端UIChatGPT客戶端
- Zookeeper客戶端使用與叢集原理客戶端
- kubernetes 客戶端KubeClient使用及常用api客戶端clientAPI
- C#之使用CefSharp建立客戶端C#客戶端
- ETH官方客戶端Geth的使用(一)客戶端