IEnumerator OutnetGetUrlList() { var args = string.Format("package={0}&app_version={1}&res_version={2}¬ice_version={3}", ChannelManager.instance.channelName, ChannelManager.instance.appVersion, clientResVersion, ChannelManager.instance.noticeVersion); bool GetUrlListComplete = false; WWW www = null; SimpleHttp.HttpPost(URLSetting.START_UP_URL, null, UtilityData.StringToBytes(args), (WWW wwwInfo) => { www = wwwInfo; GetUrlListComplete = true; }); yield return(new WaitUntil(() => { return GetUrlListComplete; })); if (www == null || !string.IsNullOrEmpty(www.error) || www.bytes == null || www.bytes.Length == 0) { Logger.LogError("Get url list for args {0} with err : {1}", args, www == null ? "www null" : (!string.IsNullOrEmpty(www.error) ? www.error : "bytes length 0")); yield return(OutnetGetUrlList()); } var urlList = (Dictionary <string, object>)MiniJSON.Json.Deserialize(UtilityData.BytesToString(www.bytes)); if (urlList == null) { Logger.LogError("Get url list for args {0} with err : {1}", args, "Deserialize url list null!"); yield return(OutnetGetUrlList()); } if (urlList.ContainsKey("serverlist")) { URLSetting.SERVER_LIST_URL = urlList["serverlist"].ToString(); } if (urlList.ContainsKey("verifying")) { URLSetting.LOGIN_URL = urlList["verifying"].ToString(); } if (urlList.ContainsKey("logserver")) { URLSetting.REPORT_ERROR_URL = urlList["logserver"].ToString(); } if (urlList.ContainsKey("app_version") && !string.IsNullOrEmpty(urlList["app_version"].ToString())) { serverAppVersion = urlList["app_version"].ToString(); } if (urlList.ContainsKey("res_version") && !string.IsNullOrEmpty(urlList["res_version"].ToString())) { serverResVersion = urlList["res_version"].ToString(); } if (urlList.ContainsKey("notice_version") && !string.IsNullOrEmpty(urlList["notice_version"].ToString())) { ChannelManager.instance.noticeVersion = urlList["notice_version"].ToString(); UtilityGame.SafeWriteAllText(noticeVersionPath, ChannelManager.instance.noticeVersion); } if (urlList.ContainsKey("notice_url") && !string.IsNullOrEmpty(urlList["notice_url"].ToString())) { URLSetting.NOTICE_URL = urlList["notice_url"].ToString(); } if (urlList.ContainsKey("app") && !string.IsNullOrEmpty(urlList["app"].ToString())) { URLSetting.APP_DOWNLOAD_URL = urlList["app"].ToString(); } else if (urlList.ContainsKey("res") && !string.IsNullOrEmpty(urlList["res"].ToString())) { URLSetting.SERVER_RESOURCE_URL = urlList["res"].ToString(); } yield break; }