public async Task CompressedRequestHandler_PutAsync_CompressesContent() { var requestUriString = "http://sometestdomain.com/someendpoint"; var mh = new MockMessageHandler(); mh.AddFixedResponse("PUT", new Uri(requestUriString), new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Created)); var handler = new CompressedRequestHandler(mh); var client = new System.Net.Http.HttpClient(handler); var uncompressedContent = "A compressible string. A compressible string. A compressible string. A compressible string."; var result = await client.PutAsync(requestUriString, new System.Net.Http.StringContent(uncompressedContent)).ConfigureAwait(false); var modifiedContent = await mh.Requests.Last().Content.ReadAsStringAsync().ConfigureAwait(false); Assert.IsTrue(modifiedContent.Length < uncompressedContent.Length); var stream = await mh.Requests.Last().Content.ReadAsStreamAsync().ConfigureAwait(false); var decompressStream = new System.IO.Compression.GZipStream(stream, System.IO.Compression.CompressionMode.Decompress); var reader = new System.IO.StreamReader(decompressStream); var decompressedContent = reader.ReadToEnd(); Assert.AreEqual(uncompressedContent, decompressedContent); }
public async Task CompressedRequestHandler_PostAsync_WorksWithNullContent() { var requestUriString = "http://sometestdomain.com/someendpoint"; var mh = new MockMessageHandler(); mh.AddFixedResponse("POST", new Uri(requestUriString), new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Created)); var handler = new CompressedRequestHandler(mh); var client = new System.Net.Http.HttpClient(handler); var result = await client.PostAsync(requestUriString, null).ConfigureAwait(false); result.EnsureSuccessStatusCode(); }
public async Task CompressedRequestHandler_PostAsync_SetsContentEncodingHeader() { var requestUriString = "http://sometestdomain.com/someendpoint"; var mh = new MockMessageHandler(); mh.AddFixedResponse("POST", new Uri(requestUriString), new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Created)); var handler = new CompressedRequestHandler(mh); var client = new System.Net.Http.HttpClient(handler); var uncompressedContent = "A compressible string. A compressible string. A compressible string. A compressible string."; var result = await client.PostAsync(requestUriString, new System.Net.Http.StringContent(uncompressedContent)).ConfigureAwait(false); Assert.AreEqual("gzip", mh.Requests.Last().Content.Headers.ContentEncoding.First()); }