public async Task <GetPostcodeCoordinatesResponse> GetPostcodeCoordinatesAsync(List <string> postCodes, CancellationToken cancellationToken) { string path = $"api/GetPostcodeCoordinates"; GetPostcodeCoordinatesRequest getPostcodeCoordinatesRequest = new GetPostcodeCoordinatesRequest() { Postcodes = postCodes }; var streamContent = HttpContentUtils.SerialiseToJsonAndCompress(getPostcodeCoordinatesRequest); ResponseWrapper <GetPostcodeCoordinatesResponse, AddressServiceErrorCode> getPostcodeCoordinatesResponseWithWrapper; using (HttpResponseMessage response = await _httpClientWrapper.PostAsync(HttpClientConfigName.AddressService, path, streamContent, cancellationToken).ConfigureAwait(false)) { response.EnsureSuccessStatusCode(); Stream stream = await response.Content.ReadAsStreamAsync(); getPostcodeCoordinatesResponseWithWrapper = await Utf8Json.JsonSerializer.DeserializeAsync <ResponseWrapper <GetPostcodeCoordinatesResponse, AddressServiceErrorCode> >(stream, StandardResolver.AllowPrivate); } if (!getPostcodeCoordinatesResponseWithWrapper.IsSuccessful) { throw new Exception($"Calling Address Service GetPostcodeCoordinatesAsync endpoint unsuccessful: {getPostcodeCoordinatesResponseWithWrapper.Errors.FirstOrDefault()?.ErrorMessage}"); } return(getPostcodeCoordinatesResponseWithWrapper.Content); }
public async Task SerialiseAndCompressContent() { TestObject testObject = new TestObject() { Id = 99 }; StreamContent result = HttpContentUtils.SerialiseToJsonAndCompress(testObject); Stream stream = await result.ReadAsStreamAsync(); TestObject deserialisedAndDecompressedContent; using (GZipStream decompressionStream = new GZipStream(stream, CompressionMode.Decompress)) { deserialisedAndDecompressedContent = await Utf8Json.JsonSerializer.DeserializeAsync <TestObject>(decompressionStream); } Assert.AreEqual(testObject.Id, deserialisedAndDecompressedContent.Id); }