예제 #1
0
        /// <summary>
        ///  データのアップロード<br />
        /// </summary>
        ///
        /// <returns>IEnumerator</returns>
        /// <param name="callback">コールバックハンドラ</param>
        /// <param name="uploadUrl">URL</param>
        /// <param name="data">アップロードするデータ</param>
        public IEnumerator UploadImpl(
            UnityAction <AsyncResult <EzUploadImplResult> > callback,
            string uploadUrl,
            byte[] data
            )
        {
            var request = UnityWebRequest.Put(uploadUrl, data);

            if (!_profile.checkRevokeCertificate)
            {
                request.certificateHandler = new DisabledCertificateHandler();
            }
            request.downloadHandler = new DownloadHandlerBuffer();
            yield return(request.SendWebRequest());

            var result = new Gs2RestResponse(
                !request.isNetworkError || request.isHttpError ? request.downloadHandler.text : request.error,
                request.responseCode
                );

            if (result.Error == null)
            {
                callback.Invoke(
                    new AsyncResult <EzUploadImplResult>(
                        new EzUploadImplResult(),
                        result.Error
                        )
                    );
            }
            else
            {
                callback.Invoke(
                    new AsyncResult <EzUploadImplResult>(
                        null,
                        result.Error
                        )
                    );
            }
        }
예제 #2
0
        /// <summary>
        ///  達成したミッションの一覧を取得<br />
        /// </summary>
        ///
        /// <returns>IEnumerator</returns>
        /// <param name="callback">コールバックハンドラ</param>
        /// <param name="session">ゲームセッション</param>
        /// <param name="namespaceName">ネームスペースの名前</param>
        public IEnumerator DownloadZip(
            UnityAction <AsyncResult <byte[]> > callback,
            GameSession session,
            string namespaceName
            )
        {
            string zipUrl = null;

            yield return(_client.WantGrant(
                             new WantGrantRequest()
                             .WithNamespaceName(namespaceName)
                             .WithAccessToken(session.AccessToken.token),
                             r =>
            {
                if (r.Result == null)
                {
                    callback.Invoke(
                        new AsyncResult <byte[]>(
                            null,
                            r.Error
                            )
                        );
                }
                else
                {
                    zipUrl = r.Result.zipUrl;
                }
            }
                             ));

            if (zipUrl == null)
            {
                yield break;
            }

            var request = UnityWebRequest.Get(zipUrl);

            request.downloadHandler = new DownloadHandlerBuffer();
            yield return(request.SendWebRequest());

            var result = new Gs2RestResponse(
                !request.isNetworkError || request.isHttpError ? null : request.error,
                request.responseCode
                );

            if (result.Error != null)
            {
                callback.Invoke(
                    new AsyncResult <byte[]>(
                        null,
                        result.Error
                        )
                    );
                yield break;
            }

            callback.Invoke(
                new AsyncResult <byte[]>(
                    request.downloadHandler.data,
                    result.Error
                    )
                );
        }