/// <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 ) ); } }
/// <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 ) ); }