コード例 #1
0
        //クエリストリングの生成//
        private string QueryString(NCMBDataStoreParamSet ncmbObjectRest)//, bool isConvertJson)
        {
            StringBuilder builder = new StringBuilder();

            /*
             * if (ncmbObjectRest.Count)
             * {
             *  builder.Append("&count=1");
             * }
             */
            if (ncmbObjectRest.Limit > 0)
            {
                builder.Append(string.Format("&limit={0}", ncmbObjectRest.Limit));
            }
            if (!string.IsNullOrEmpty(ncmbObjectRest.SortColumn))
            {
                builder.Append(string.Format("&order={0}", WWW.EscapeURL(ncmbObjectRest.SortColumn)));
            }

            if (!string.IsNullOrEmpty(ncmbObjectRest.FieldsAsJson))
            {
                builder.Append(string.Format("&where={0}", WWW.EscapeURL(ncmbObjectRest.FieldsAsJson)));
            }
            return(builder.ToString());
        }
コード例 #2
0
        public IEnumerator Call(RequestType method, string path, NCMBDataStoreParamSet ncmbObjectRest, Action <long> errorCallback = null)
        {
            string endpoint    = this.Endpoint(path);
            string queryString = this.QueryString(ncmbObjectRest);

            this.timestamp = DateTime.UtcNow.ToString("yyyy-MM-dd'T'HH:mm:ss'Z'");
            //this.baseParamString = this.ParamString();

            UnityWebRequest request;

            switch (method)
            {
            case RequestType.GET:
                if (!string.IsNullOrEmpty(queryString))
                {
                    endpoint += "?" + queryString.Trim('&');
                }
                request = UnityWebRequest.Get(endpoint);
                break;

            /*
             * case RequestType.POST:
             * request = UnityWebRequest.Post(endpoint, ncmbObjectRest.FieldsAsJson);
             * break;
             *
             * case RequestType.PUT:
             * request = UnityWebRequest.Put(endpoint, ncmbObjectRest.FieldsAsJson);
             * break;
             */
            default:
                request = new UnityWebRequest(endpoint, method.ToString());
                request.uploadHandler = new UploadHandlerRaw(Encoding.UTF8.GetBytes(ncmbObjectRest.FieldsAsJson));

                break;
            }

            request.SetRequestHeader(KEY_APPLICATION, this.applicationKey);
            request.SetRequestHeader(KEY_SIGNATURE, this.Signature(method.ToString(), endpoint, queryString));
            request.SetRequestHeader(KEY_TIMESTAMP, this.timestamp);
            request.SetRequestHeader(KEY_CONTENT_TYPE, VAL_CONTENT_TYPE);

            request.downloadHandler = new DownloadHandlerBuffer();

            yield return(request.Send());

#if UNITY_2017_1_OR_NEWER
            if (request.isNetworkError)
#else
            if (request.isError)
#endif
            {
                Debug.Log(request.error);
                yield break;
            }
            else
            {
                if (request.responseCode == 200 || request.responseCode == 201)
                {
                    Debug.Log("Request succeed");
                }
                else
                {
                    //登録完了 201
                    Debug.LogWarning("Request Failed" + request.responseCode.ToString());

                    if (errorCallback != null)
                    {
                        errorCallback(request.responseCode);
                    }
                }

                yield return(request.downloadHandler.text);
            }
        }