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