diff --git a/CryptoExchange.Net.UnitTests/TestImplementations/TestRestClient.cs b/CryptoExchange.Net.UnitTests/TestImplementations/TestRestClient.cs index 99added..2bb242a 100644 --- a/CryptoExchange.Net.UnitTests/TestImplementations/TestRestClient.cs +++ b/CryptoExchange.Net.UnitTests/TestImplementations/TestRestClient.cs @@ -50,7 +50,7 @@ namespace CryptoExchange.Net.UnitTests.TestImplementations var response = new Mock(); response.Setup(c => c.IsSuccessStatusCode).Returns(true); - response.Setup(c => c.GetResponseStreamAsync()).Returns(Task.FromResult((Stream)responseStream)); + response.Setup(c => c.GetResponseStreamAsync(It.IsAny())).Returns(Task.FromResult((Stream)responseStream)); var headers = new HttpRequestMessage().Headers; var request = new Mock(); @@ -109,7 +109,7 @@ namespace CryptoExchange.Net.UnitTests.TestImplementations var response = new Mock(); response.Setup(c => c.IsSuccessStatusCode).Returns(false); - response.Setup(c => c.GetResponseStreamAsync()).Returns(Task.FromResult((Stream)responseStream)); + response.Setup(c => c.GetResponseStreamAsync(It.IsAny())).Returns(Task.FromResult((Stream)responseStream)); var headers = new List>(); var request = new Mock(); diff --git a/CryptoExchange.Net/Clients/RestApiClient.cs b/CryptoExchange.Net/Clients/RestApiClient.cs index 7c6f0c2..8e26807 100644 --- a/CryptoExchange.Net/Clients/RestApiClient.cs +++ b/CryptoExchange.Net/Clients/RestApiClient.cs @@ -468,7 +468,7 @@ namespace CryptoExchange.Net.Clients { response = await request.GetResponseAsync(cancellationToken).ConfigureAwait(false); sw.Stop(); - responseStream = await response.GetResponseStreamAsync().ConfigureAwait(false); + responseStream = await response.GetResponseStreamAsync(cancellationToken).ConfigureAwait(false); string? originalData = null; var outputOriginalData = ApiOptions.OutputOriginalData ?? ClientOptions.OutputOriginalData; if (outputOriginalData || MessageHandler.RequiresSeekableStream) diff --git a/CryptoExchange.Net/Interfaces/IResponse.cs b/CryptoExchange.Net/Interfaces/IResponse.cs index 068cccf..c4405ca 100644 --- a/CryptoExchange.Net/Interfaces/IResponse.cs +++ b/CryptoExchange.Net/Interfaces/IResponse.cs @@ -2,6 +2,7 @@ using System.IO; using System.Net; using System.Net.Http.Headers; +using System.Threading; using System.Threading.Tasks; namespace CryptoExchange.Net.Interfaces @@ -40,7 +41,7 @@ namespace CryptoExchange.Net.Interfaces /// Get the response stream /// /// - Task GetResponseStreamAsync(); + Task GetResponseStreamAsync(CancellationToken cancellationToken); /// /// Close the response diff --git a/CryptoExchange.Net/Requests/Response.cs b/CryptoExchange.Net/Requests/Response.cs index 84ce275..7222e2b 100644 --- a/CryptoExchange.Net/Requests/Response.cs +++ b/CryptoExchange.Net/Requests/Response.cs @@ -1,10 +1,12 @@ using System; +using CryptoExchange.Net.Interfaces; +using System.Collections.Generic; using System.IO; using System.Net; using System.Net.Http; using System.Net.Http.Headers; +using System.Threading; using System.Threading.Tasks; -using CryptoExchange.Net.Interfaces; namespace CryptoExchange.Net.Requests { @@ -40,9 +42,13 @@ namespace CryptoExchange.Net.Requests } /// - public async Task GetResponseStreamAsync() + public async Task GetResponseStreamAsync(CancellationToken cancellationToken) { - return await _response.Content.ReadAsStreamAsync().ConfigureAwait(false); + #if NET5_0_OR_GREATER + return await _response.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false); + #else + return await _response.Content.ReadAsStreamAsync().ConfigureAwait(false); + #endif } /// diff --git a/CryptoExchange.Net/Testing/Implementations/TestResponse.cs b/CryptoExchange.Net/Testing/Implementations/TestResponse.cs index 17f587a..0a6e079 100644 --- a/CryptoExchange.Net/Testing/Implementations/TestResponse.cs +++ b/CryptoExchange.Net/Testing/Implementations/TestResponse.cs @@ -4,6 +4,7 @@ using System.IO; using System.Net; using System.Net.Http; using System.Net.Http.Headers; +using System.Threading; using System.Threading.Tasks; namespace CryptoExchange.Net.Testing.Implementations @@ -33,6 +34,6 @@ namespace CryptoExchange.Net.Testing.Implementations { } - public Task GetResponseStreamAsync() => Task.FromResult(_response); + public Task GetResponseStreamAsync(CancellationToken cancellationToken) => Task.FromResult(_response); } }