Exemplo n.º 1
0
        public static async Task <HttpResponseMessage> CreateAndSendWebrequest(WebrequestCreationInfo webrequestCreationInfo,
                                                                               CancellationToken cancellationToken = new CancellationToken())
        {
            await new WaitForUpdate();

            using (var request = create_web_request(webrequestCreationInfo))
            {
                return(await unsafe_send_webrequest(request, cancellationToken).ConfigureAwait(false));
            }
        }
Exemplo n.º 2
0
        public Task <HttpResponseMessage> GetAsync(string uri = "",
                                                   CancellationToken cancellationToken = new CancellationToken())
        {
            var creationInfo = new WebrequestCreationInfo()
            {
                Method = WebRequestMethod.GET,
                Data   = new byte[0],
                Url    = uri
            };

            return(CreateAndSendWebrequest(creationInfo, cancellationToken));
        }
Exemplo n.º 3
0
        public Task <HttpResponseMessage> PostAsync(string uri         = "", byte[] postData = default(byte[]),
                                                    string contentType = "application/json",
                                                    CancellationToken cancellationToken = new CancellationToken())
        {
            var creationInfo = new WebrequestCreationInfo()
            {
                Method      = WebRequestMethod.POST,
                Data        = postData,
                Url         = uri,
                ContentType = contentType
            };

            return(CreateAndSendWebrequest(creationInfo, cancellationToken));
        }
Exemplo n.º 4
0
        public static Task <HttpResponseMessage> DeleteAsync(string uri, byte[] postData         = null,
                                                             string contentType                  = "application/json",
                                                             CancellationToken cancellationToken = new CancellationToken())
        {
            var creationInfo = new WebrequestCreationInfo()
            {
                Method      = WebRequestMethod.DELETE,
                Data        = postData,
                Url         = uri,
                ContentType = contentType
            };

            return(CreateAndSendWebrequest(creationInfo, cancellationToken));
        }
Exemplo n.º 5
0
        private static UnityWebRequest create_web_request(WebrequestCreationInfo requestCreationInfo)
        {
            var webrequest = new UnityWebRequest(requestCreationInfo.Url);

            webrequest.method = requestCreationInfo.Method.ToString();

            if (requestCreationInfo.Data != null && requestCreationInfo.Data.Length != 0)
            {
                webrequest.uploadHandler = new UploadHandlerRaw(requestCreationInfo.Data);
            }

            foreach (var header in requestCreationInfo.Headers)
            {
                webrequest.SetRequestHeader(header.Key, header.Value);
            }

            webrequest.downloadHandler = new DownloadHandlerBuffer();

            return(webrequest);
        }
Exemplo n.º 6
0
        public Task <HttpResponseMessage> CreateAndSendWebrequest(WebrequestCreationInfo webrequestCreationInfo,
                                                                  CancellationToken cancellationToken = new CancellationToken())
        {
            Uri absUri;

            if (string.IsNullOrWhiteSpace(webrequestCreationInfo.Url))
            {
                if (BaseAddress == null)
                {
                    throw new Exception("Call address empty with no base address provided");
                }
                else
                {
                    absUri = BaseAddress;
                }
            }
            else
            {
                var requestUri = new Uri(webrequestCreationInfo.Url);
                absUri = new Uri(BaseAddress, requestUri);

                if (BaseAddress == null && !requestUri.IsAbsoluteUri)
                {
                    throw new Exception("No base address for relative Uri provided");
                }
            }


            var callInput = new WebrequestCreationInfo
            {
                Data    = webrequestCreationInfo.Data,
                Headers = webrequestCreationInfo.Headers,
                Method  = webrequestCreationInfo.Method,
                Url     = absUri.AbsoluteUri
            };

            return(WebRequestUtils.CreateAndSendWebrequest(callInput, cancellationToken));
        }