Пример #1
0
        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);
                }
            });
        }
Пример #2
0
 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);
     }
 }
Пример #3
0
 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);
     }
 }
Пример #4
0
 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);
     }
 }
Пример #5
0
        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);
            }
        }
Пример #6
0
        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);
            });
        }