/// <summary> /// Builds the current Promise which will eventually call the OnPromiseSuccess or OnPromiseError events. /// Pass the arguments which will be sent to the concrete Promise once the preliminary check for errors is successful. /// </summary> /// <typeparam name="T"> The return type of the UnityRequest. </typeparam> /// <param name="request"> The UnityRequest to check. </param> /// <param name="args"> The arguments to do a more in depth Promise check for success or error. </param> public void Build <T>(UnityRequest <T> request, params Func <object>[] args) { if (request.Exception == null && !EqualityComparer <T> .Default.Equals(request.Result, default(T))) { InternalBuild(args); } else { OnPromiseError?.Invoke(request.Exception.Message); } }
static void OnAddArmyDone(UnityRequest <string> response) { if (response.Exception != null) { Debug.Log("Exception: " + response.Exception.Message); return; } Debug.Log("OnAddArmyDone Response: " + response.Result); if (AddArmyResponse != null) { AddArmyResponse.Invoke(); } }
static void OnGetArmyCountDone(UnityRequest <string> response) { if (string.IsNullOrEmpty(response.Result)) { return; } var function = instance.GetArmyCountFunction; var output = function.DecodeDTOTypeOutput <GetArmyCountOutput>(response.Result); Debug.Log("OnGetArmyCountDone Response: " + response.Result); if (GetArmyCountResponse != null) { GetArmyCountResponse.Invoke(output); } }
IEnumerator LogInAccount(string uName, string pWord) { WWWForm form = new WWWForm(); form.AddField("loginUsername", uName); form.AddField("loginPassword", pWord); using (UnityRequest www = UnityWebRequest.Post("http://localhost:8080/Unity/", form)) { www.downloadHandler = new DownloadHandlerBuffer(); yield return(www.SendWebRequest()); if (www.isNetworkError) { Debug.Log(www.error); } else { string responseText = www.downloadHandler.text; Debug.Log("Response Text from the server = " + responseText); info.text = "Response Text from the server " + responseText; } } }
private void PostObject(PostObjectRequest request, AsyncOptions options, Action <AmazonWebServiceRequest, AmazonWebServiceResponse, Exception, AsyncOptions> callbackHelper) { string url; string subdomain = request.Region.Equals(RegionEndpoint.USEast1) ? "s3" : "s3-" + request.Region.SystemName; IDictionary <string, string> headers = new Dictionary <string, string>(); if (request.Bucket.IndexOf('.') > -1) { url = string.Format(CultureInfo.InvariantCulture, "https://{0}.amazonaws.com/{1}/", subdomain, request.Bucket); } else { url = string.Format(CultureInfo.InvariantCulture, "https://{0}.{1}.amazonaws.com", request.Bucket, subdomain); } Uri uri = new Uri(url); IHttpRequest <string> webRequest = null; if (AWSConfigs.HttpClient == AWSConfigs.HttpClientOption.UnityWWW) { webRequest = new UnityWwwRequest(uri); } else { webRequest = new UnityRequest(uri); } var boundary = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).Replace('=', 'z'); headers[HeaderKeys.ContentTypeHeader] = string.Format(CultureInfo.InvariantCulture, "multipart/form-data; boundary={0}", boundary); headers[HeaderKeys.UserAgentHeader] = AWSSDKUtils.UserAgentHeader; webRequest.Method = "POST"; using (var reqStream = new MemoryStream()) { request.WriteFormData(boundary, reqStream); byte[] boundaryBytes = Encoding.UTF8.GetBytes(string.Format(CultureInfo.InvariantCulture, "--{0}\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n", boundary)); reqStream.Write(boundaryBytes, 0, boundaryBytes.Length); using (var inputStream = null == request.Path ? request.InputStream : File.OpenRead(request.Path)) { byte[] buf = new byte[1024]; int bytesRead; while ((bytesRead = inputStream.Read(buf, 0, 1024)) > 0) { reqStream.Write(buf, 0, bytesRead); } } byte[] endBoundaryBytes = Encoding.UTF8.GetBytes(string.Format(CultureInfo.InvariantCulture, "\r\n--{0}--", boundary)); reqStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length); webRequest.WriteToRequestBody(null, reqStream.ToArray(), headers); var callback = ((Amazon.Runtime.Internal.IAmazonWebServiceRequest)request).StreamUploadProgressCallback; if (callback != null) { webRequest.SetupProgressListeners(reqStream, 0, request, callback); } } var executionContext = new AsyncExecutionContext( new AsyncRequestContext(this.Config.LogMetrics, new NullSigner()) { ClientConfig = this.Config, OriginalRequest = request, Action = callbackHelper, AsyncOptions = options, IsAsync = true }, new AsyncResponseContext() ); webRequest.SetRequestHeaders(headers); executionContext.RuntimeState = webRequest; executionContext.ResponseContext.AsyncResult = new RuntimeAsyncResult(executionContext.RequestContext.Callback, executionContext.RequestContext.State); executionContext.ResponseContext.AsyncResult.AsyncOptions = executionContext.RequestContext.AsyncOptions; executionContext.ResponseContext.AsyncResult.Action = executionContext.RequestContext.Action; executionContext.ResponseContext.AsyncResult.Request = executionContext.RequestContext.OriginalRequest; webRequest.BeginGetResponse(new AsyncCallback(ProcessPostResponse), executionContext); }
/// <summary> /// Begin communicating with the remote server. /// </summary> /// <param name="callback">Communication callback.</param> public void Send(Action <UnityWebRequest> callback) { m_OnComplete = callback; EditorApplication.update += OnEditorUpdate; UnityRequest.SendWebRequest(); }
private void PostObject(PostObjectRequest request, AsyncOptions options, Action<AmazonWebServiceRequest, AmazonWebServiceResponse, Exception, AsyncOptions> callbackHelper) { string url; string subdomain = request.Region.Equals(RegionEndpoint.USEast1) ? "s3" : "s3-" + request.Region.SystemName; IDictionary<string, string> headers = new Dictionary<string, string>(); if (request.Bucket.IndexOf('.') > -1) url = string.Format(CultureInfo.InvariantCulture, "https://{0}.amazonaws.com/{1}/", subdomain, request.Bucket); else url = string.Format(CultureInfo.InvariantCulture, "https://{0}.{1}.amazonaws.com", request.Bucket, subdomain); Uri uri = new Uri(url); IHttpRequest<string> webRequest = null; if (AWSConfigs.HttpClient == AWSConfigs.HttpClientOption.UnityWWW) webRequest = new UnityWwwRequest(uri); else webRequest = new UnityRequest(uri); var boundary = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).Replace('=', 'z'); headers[HeaderKeys.ContentTypeHeader] = string.Format(CultureInfo.InvariantCulture, "multipart/form-data; boundary={0}", boundary); headers[HeaderKeys.UserAgentHeader] = AWSSDKUtils.UserAgentHeader; webRequest.Method = "POST"; using (var reqStream = new MemoryStream()) { request.WriteFormData(boundary, reqStream); byte[] boundaryBytes = Encoding.UTF8.GetBytes(string.Format(CultureInfo.InvariantCulture, "--{0}\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n", boundary)); reqStream.Write(boundaryBytes, 0, boundaryBytes.Length); using (var inputStream = null == request.Path ? request.InputStream : File.OpenRead(request.Path)) { byte[] buf = new byte[1024]; int bytesRead; while ((bytesRead = inputStream.Read(buf, 0, 1024)) > 0) { reqStream.Write(buf, 0, bytesRead); } } byte[] endBoundaryBytes = Encoding.UTF8.GetBytes(string.Format(CultureInfo.InvariantCulture, "\r\n--{0}--", boundary)); reqStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length); webRequest.WriteToRequestBody(null, reqStream.ToArray(), headers); var callback = ((Amazon.Runtime.Internal.IAmazonWebServiceRequest)request).StreamUploadProgressCallback; if (callback != null) webRequest.SetupProgressListeners(reqStream, 0, request, callback); } var executionContext = new AsyncExecutionContext( new AsyncRequestContext(this.Config.LogMetrics) { ClientConfig = this.Config, OriginalRequest = request, Action = callbackHelper, AsyncOptions = options, IsAsync = true }, new AsyncResponseContext() ); webRequest.SetRequestHeaders(headers); executionContext.RuntimeState = webRequest; executionContext.ResponseContext.AsyncResult = new RuntimeAsyncResult(executionContext.RequestContext.Callback, executionContext.RequestContext.State); executionContext.ResponseContext.AsyncResult.AsyncOptions = executionContext.RequestContext.AsyncOptions; executionContext.ResponseContext.AsyncResult.Action = executionContext.RequestContext.Action; executionContext.ResponseContext.AsyncResult.Request = executionContext.RequestContext.OriginalRequest; webRequest.BeginGetResponse(new AsyncCallback(ProcessPostResponse), executionContext); }