1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2025-12-16 02:41:03 +00:00

Merge branch 'master' into feature/websocket-performance

This commit is contained in:
Jkorf 2025-12-15 16:34:43 +01:00
commit 3abdce7b2a
5 changed files with 16 additions and 8 deletions

View File

@ -50,7 +50,7 @@ namespace CryptoExchange.Net.UnitTests.TestImplementations
var response = new Mock<IResponse>();
response.Setup(c => c.IsSuccessStatusCode).Returns(true);
response.Setup(c => c.GetResponseStreamAsync()).Returns(Task.FromResult((Stream)responseStream));
response.Setup(c => c.GetResponseStreamAsync(It.IsAny<CancellationToken>())).Returns(Task.FromResult((Stream)responseStream));
var headers = new HttpRequestMessage().Headers;
var request = new Mock<IRequest>();
@ -109,7 +109,7 @@ namespace CryptoExchange.Net.UnitTests.TestImplementations
var response = new Mock<IResponse>();
response.Setup(c => c.IsSuccessStatusCode).Returns(false);
response.Setup(c => c.GetResponseStreamAsync()).Returns(Task.FromResult((Stream)responseStream));
response.Setup(c => c.GetResponseStreamAsync(It.IsAny<CancellationToken>())).Returns(Task.FromResult((Stream)responseStream));
var headers = new List<KeyValuePair<string, string[]>>();
var request = new Mock<IRequest>();

View File

@ -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)

View File

@ -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
/// </summary>
/// <returns></returns>
Task<Stream> GetResponseStreamAsync();
Task<Stream> GetResponseStreamAsync(CancellationToken cancellationToken);
/// <summary>
/// Close the response

View File

@ -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
}
/// <inheritdoc />
public async Task<Stream> GetResponseStreamAsync()
public async Task<Stream> 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
}
/// <inheritdoc />

View File

@ -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<Stream> GetResponseStreamAsync() => Task.FromResult(_response);
public Task<Stream> GetResponseStreamAsync(CancellationToken cancellationToken) => Task.FromResult(_response);
}
}