public void HttpPostRequest(RequestUrls.UrlData url, JSONObject data, Action <JSONObject> onResult) { // Debug.Log("Service.HttpPostRequest"); Request(url, data, result => { try { var returnData = new JSONObject(); returnData.Add("hasError", result["HasError"].AsBool); returnData.Add("errorMessage", result["ErrorMessage"]); returnData.Add("errorCode", result["ErrorCode"].AsInt); if (result.HasKeyNotNull("Result")) { returnData.Add("result", result["Result"]); } onResult(returnData); } catch (Exception e) { Debug.LogError("Exception: " + e.Message); } }); }
private void EncryptRequest(RequestUrls.UrlData url, JSONObject data, Action <JSONObject> onResult, JSONObject setting) { try { EncryptData(data, result => { try { if (result["hasError"].AsBool) { var retData = new JSONObject(); retData.Add("HasError", true); retData.Add("ErrorMessage", result["errorMessage"]); retData.Add("ErrorCode", result["errorCode"]); onResult(retData); } else { requestHandler(url, result["result"].AsObject, onResult, setting); } } catch (Exception e) { Debug.LogError("Exception: " + e.Message); } }); } catch (Exception e) { Debug.LogError("Exception: " + e.Message); } }
private void Request(RequestUrls.UrlData url, JSONObject data, Action <JSONObject> onResult) { // Debug.Log("Service.request"); try { Request(url, data, onResult, null); } catch (Exception e) { Debug.LogError("Exception: " + e.Message); } }
private void Request(RequestUrls.UrlData urlData, JSONObject data, Action <JSONObject> onResult, JSONObject setting) { // Debug.Log("Service.request: setting = null"); if (urlData.Encrypt && ConfigData.Ure) { EncryptRequest(urlData, data, res => { requestResponseHandler(res, onResult); }, setting); } else { requestHandler(urlData, data, res => { requestResponseHandler(res, onResult); }, setting); } }
private void AsyncRequest(RequestUrls.UrlData urlData, JSONObject data, Action <JSONObject> onResult, JSONObject setting) { // Debug.Log("Service.asyncRequest"); // getPeerIdFromHttpRequest(new RequestCallback() { // @Override // public void onResult(JSONObject result) { // // } // }); try { // string peerId = result.getString("peerId"); string uri; if (urlData.Uri != null) { uri = urlData.Uri; } else { uri = setting["uri"]; } var parameters = new JSONArray(); var keys = new JSONArray(); foreach (var key in data.Keys) { keys.Add(key); } for (var i = 0; i < keys.Count; i++) { var paramData = new JSONObject(); string keyName = keys[i]; paramData.Add("name", keyName); paramData.Add("value", data[keyName]); parameters.Add(paramData); } var canFromSocket = true; // some request same as device register and server register can not if (setting != null) { if (setting.HasKey("parameters") && setting["parameters"] != null) { var Params = setting["parameters"].AsArray; for (var i = 0; i < Params.Count; i++) { parameters.Add(Params[i]); } } if (setting.HasKey("fromSocket") && setting["fromSocket"] != null) { canFromSocket = setting["fromSocket"].AsBool; } } var asyncData = new JSONObject(); var messageVo = new JSONObject(); var gcParamData = new JSONObject(); var clientMessageId = Guid.NewGuid() + "_" + _appId; gcParamData.Add("remoteAddr", null); gcParamData.Add("clientMessageId", clientMessageId); gcParamData.Add("serverKey", 0); gcParamData.Add("oneTimeToken", null); gcParamData.Add("parameters", parameters); gcParamData.Add("msgType", 3); gcParamData.Add("uri", uri); if (data.HasKey("token") && data["token"] != null && data.HasKey("tokenIssuer") && data["tokenIssuer"] != null) { gcParamData.Add("token", data["token"]); gcParamData.Add("tokenIssuer", data["tokenIssuer"]); } else if (_userData.HasKey("token") && _userData["token"] != null) { gcParamData.Add("token", _userData["token"]); gcParamData.Add("tokenIssuer", _userData["tokenIssuer"]); } gcParamData.Add("messageId", 1001); gcParamData.Add("expireTime", 0); messageVo.Add("content", gcParamData.ToString()); messageVo.Add("messageId", 1001); messageVo.Add("priority", "1"); messageVo.Add("peerName", ConfigData.Ahrrn); // messageVO.put("ttl", ConfigData.hrt); messageVo.Add("ttl", 0); asyncData.Add("content", messageVo.ToString()); // asyncData.put("trackerId", 1001); asyncData.Add("type", 3); if (ConfigData.Harfs && _network.IsSocketOpen() && canFromSocket) { asyncData.Add("type", 5); asyncData.Add("timeout", ConfigData.Hrt); Debug.Log("REQUEST_SEND " + clientMessageId + " " + asyncData); _network.Emit(asyncData, result => { Debug.Log("REQUEST_RESPONSE " + clientMessageId + " " + result); onResult(result); } ); } else { var set = setting; if (set == null) { set = new JSONObject(); } var headers = new JSONObject(); headers.Add("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); set.Add("headers", headers); var url = ConfigData.Aha + "/srv"; set.Add("method", "POST"); //Debug.Log("final request Params: " + PrettyJson(asyncData)); var pData = "data=" + Uri.EscapeUriString(asyncData.ToString()); // pData += ("&peerId=" + peerId); HttpRequest(url, pData, result => { // Debug.Log("Service.AsyncRequest.HttpRequest.onResult: result: " + result.ToString()); JSONObject retData; try { var hasError = result["HasError"].AsBool; if (!hasError) { var obj = JSON.Parse(result["Result"].ToString()).AsObject; retData = JSON.Parse(obj["content"]).AsObject; } else { retData = result; } } catch (Exception e) { retData = new JSONObject(); try { retData.Add("HasError", true); retData.Add("ErrorMessage", e.Message); retData.Add("ErrorCode", ErrorCodes.Exception); retData.Add("Result", new JSONObject()); } catch (Exception e1) { Debug.LogError("Exception: " + e1.Message); } } if (onResult != null) { // Debug.Log("Service.AsyncRequest.HttpRequest.onResult: retData: " + retData.ToString()); onResult(retData); } }, set); } } catch (Exception e) { Debug.LogError("Exception: " + e.Message); } }
private void requestHandler(RequestUrls.UrlData urlData, JSONObject data, Action <JSONObject> onResult, JSONObject setting) { //Debug.Log("Service.requestHandler"); string uri; string url; if (setting != null && (setting.HasKey("url") || setting.HasKey("uri"))) { try { uri = setting.HasKey("url") ? setting["url"] : setting["uri"]; } catch (Exception) { uri = urlData.Uri; } } else { uri = urlData.Uri; } if (urlData.HostName.Equals("BAZITECH")) { var newUrlData = urlData.Copy(); if (newUrlData.Encrypt && ConfigData.Ure) { newUrlData.Uri = newUrlData.Uri.Replace("/srv", "/srv/enc"); } if (ConfigData.Har) { AsyncRequest(newUrlData, data, onResult, setting); return; } else { url = ConfigData.Gca + uri; } } else { url = ConfigData.Opsa + uri; } if (data.HasKey("token") && data["token"] != null && data.HasKey("tokenIssuer") && data["tokenIssuer"] != null) { try { data.Add("_token", data["token"]); data.Add("_token_issuer", data["tokenIssuer"]); data.Remove("token"); data.Remove("tokenIssuer"); } catch (Exception e) { Debug.LogError("Exception: " + e.Message); } } else if (_userData.HasKey("token")) { try { data.Add("_token", _userData["token"]); data.Add("_token_issuer", _userData["tokenIssuer"]); } catch (Exception e) { Debug.LogError("Exception: " + e.Message); } } var requestData = new JSONObject(); if (urlData.Encrypt && ConfigData.Ure) { url = url.Replace("/srv", "/srv/enc"); } try { requestData.Add("url", url); requestData.Add("data", data); } catch (Exception e) { Debug.LogError("Exception: " + e.Message); } _network.PostRequest(requestData, resData => { var returnData = resData; try { if (!resData["HasError"].AsBool) { returnData = resData["Result"].AsObject; } } catch (Exception e) { Debug.LogError("Exception: " + e.Message); } onResult(returnData); }); }