實際工作中,因爲項目需要,arcgis server的服務在發佈後會設置成私有,如下圖:
這時如果直接調用的話,可能就會調用不到,返回code=499。
這時要調用話的可以通過設置代理或arcgis自帶的token服務進行調用。
1、設置代理;查看arcgis for android的api,發現這塊寫的很籠統,ProxySetup類中有個setupProxy(String proxyHost, int proxyPort, String scheme)方法,試了下沒有調用成功。
2、通過token服務調用;首先要知道arcgis manager的用戶名和密碼;通過arcgis自帶的token服務,獲取token,
http://localhost:8086/arcgis/tokens
代碼如下:
UserCredentials creds = new UserCredentials();
creds.setAuthenticationType(UserCredentials.AuthenticationType.TOKEN);
creds.setUserToken("token","referer");
creds.setTokenServiceUrl("http://localhost:8086/arcgis/tokens");
ArcGISDynamicMapServiceLayer layer= new ArcGISDynamicMapServiceLayer(
layer, null, creds);
參考資料: