Exemplo n.º 1
0
        /// <summary>
        ///     Builds request URL using ServerUrl, AppKey, DeviceID and supplied queryParams parameters.
        ///     The data is appended in the URL.
        /// </summary>
        /// <param name="queryParams"></param>
        /// <returns></returns>
        private string BuildGetRequest(Dictionary <string, object> queryParams)
        {
            _requestStringBuilder.Clear();
            //Metrics added to each request
            foreach (var item in _countlyUtils.GetAppKeyAndDeviceIdParams())
            {
                _requestStringBuilder.AppendFormat((item.Key != "app_key" ? "&" : string.Empty) + "{0}={1}",
                                                   UnityWebRequest.EscapeURL(item.Key), UnityWebRequest.EscapeURL(Convert.ToString(item.Value)));
            }


            //Query params supplied for creating request
            foreach (var item in queryParams)
            {
                if (!string.IsNullOrEmpty(item.Key) && item.Value != null)
                {
                    _requestStringBuilder.AppendFormat("&{0}={1}", UnityWebRequest.EscapeURL(item.Key),
                                                       UnityWebRequest.EscapeURL(Convert.ToString(item.Value)));
                }
            }

            //Not sure if we need checksum here

//            if (!string.IsNullOrEmpty(_config.Salt))
//            {
//                // Create a SHA256
//                using (var sha256Hash = SHA256.Create())
//                {
//                    var data = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(_requestStringBuilder + _config.Salt));
//                    _requestStringBuilder.Insert(0, _countly.GetBaseUrl());
//                    return _requestStringBuilder.AppendFormat("&checksum256={0}", Impl.Countly.GetStringFromBytes(data)).ToString();
//                }
//            }

            _requestStringBuilder.Insert(0, _countlyUtils.GetRemoteConfigOutputUrl());
            return(_requestStringBuilder.ToString());
        }