//クエリストリングの生成// 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()); }
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); } }