private static async Task <IHttpContent> GetCompressedContent(IHttpContent originalContent)
        {
            var ms = new System.IO.MemoryStream();

            try
            {
                await CompressOriginalContentStream(originalContent, ms).ConfigureAwait(false);

                ms.Seek(0, System.IO.SeekOrigin.Begin);

                var compressedContent = new Windows.Web.Http.HttpStreamContent(ms.AsInputStream());
                originalContent.CopyHeadersTo(compressedContent);
                compressedContent.Headers.ContentEncoding.Clear();
                compressedContent.Headers.ContentEncoding.Add(new Windows.Web.Http.Headers.HttpContentCodingHeaderValue("gzip"));
                compressedContent.Headers.ContentLength = (ulong)ms.Length;

                originalContent.Dispose();

                return(compressedContent);
            }
            catch
            {
                ms?.Dispose();
                throw;
            }
        }
Exemple #2
0
        internal static async Task <rt.IHttpContent> GetContentFromNet(HttpContent content)
        {
            if (content == null)
            {
                return(null);
            }

            var stream = await content.ReadAsStreamAsync().ConfigureAwait(false);

            var c = new rt.HttpStreamContent(stream.AsInputStream());

            CopyHeaders(content.Headers, c.Headers);

            return(c);
        }
        public static async Task <PackageInstallationResult> InstallAppAsync(IStorageFile appPackage, Guid decryptionKey)
        {
            var filename  = "app.appx";
            var deployUri = new Uri("https://localhost/api/app/packagemanager/package?package=" + filename);

            // Prepare Request for deploying app
            var stream      = new PackageReader(await appPackage.OpenAsync(FileAccessMode.ReadWrite), decryptionKey);
            var httpContent = new Windows.Web.Http.HttpStreamContent(stream);
            await httpContent.BufferAllAsync();

            var multipartContent = new HttpMultipartFormDataContent();

            multipartContent.Add(httpContent, filename, filename);
            HttpResponseMessage response;

            // Send request
            bool requestSucessfull;

            try {
                response = await HttpClient.PostAsync(deployUri, multipartContent);

                requestSucessfull = response.IsSuccessStatusCode;
            }
            catch (Exception ex) {
                requestSucessfull = false;
            }

            // Request was sucessfull ?
            if (!requestSucessfull)
            {
                return(PackageInstallationResult.ConnectToDevicePortalFailed);
            }

            // Waiting for response
            return(await GetInstallationResultAsync());
        }
        internal static async Task<rt.IHttpContent> GetContentFromNet(HttpContent content)
        {
            if (content == null)
                return null;

            var stream = await content.ReadAsStreamAsync().ConfigureAwait(false);
            var c = new rt.HttpStreamContent(stream.AsInputStream());

            CopyHeaders(content.Headers, c.Headers);

            return c;
        }