1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2025-12-17 03:28:18 +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>(); var response = new Mock<IResponse>();
response.Setup(c => c.IsSuccessStatusCode).Returns(true); 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 headers = new HttpRequestMessage().Headers;
var request = new Mock<IRequest>(); var request = new Mock<IRequest>();
@ -109,7 +109,7 @@ namespace CryptoExchange.Net.UnitTests.TestImplementations
var response = new Mock<IResponse>(); var response = new Mock<IResponse>();
response.Setup(c => c.IsSuccessStatusCode).Returns(false); 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 headers = new List<KeyValuePair<string, string[]>>();
var request = new Mock<IRequest>(); var request = new Mock<IRequest>();

View File

@ -468,7 +468,7 @@ namespace CryptoExchange.Net.Clients
{ {
response = await request.GetResponseAsync(cancellationToken).ConfigureAwait(false); response = await request.GetResponseAsync(cancellationToken).ConfigureAwait(false);
sw.Stop(); sw.Stop();
responseStream = await response.GetResponseStreamAsync().ConfigureAwait(false); responseStream = await response.GetResponseStreamAsync(cancellationToken).ConfigureAwait(false);
string? originalData = null; string? originalData = null;
var outputOriginalData = ApiOptions.OutputOriginalData ?? ClientOptions.OutputOriginalData; var outputOriginalData = ApiOptions.OutputOriginalData ?? ClientOptions.OutputOriginalData;
if (outputOriginalData || MessageHandler.RequiresSeekableStream) if (outputOriginalData || MessageHandler.RequiresSeekableStream)

View File

@ -2,6 +2,7 @@
using System.IO; using System.IO;
using System.Net; using System.Net;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace CryptoExchange.Net.Interfaces namespace CryptoExchange.Net.Interfaces
@ -40,7 +41,7 @@ namespace CryptoExchange.Net.Interfaces
/// Get the response stream /// Get the response stream
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
Task<Stream> GetResponseStreamAsync(); Task<Stream> GetResponseStreamAsync(CancellationToken cancellationToken);
/// <summary> /// <summary>
/// Close the response /// Close the response

View File

@ -1,10 +1,12 @@
using System; using System;
using CryptoExchange.Net.Interfaces;
using System.Collections.Generic;
using System.IO; using System.IO;
using System.Net; using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using CryptoExchange.Net.Interfaces;
namespace CryptoExchange.Net.Requests namespace CryptoExchange.Net.Requests
{ {
@ -40,9 +42,13 @@ namespace CryptoExchange.Net.Requests
} }
/// <inheritdoc /> /// <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 /> /// <inheritdoc />

View File

@ -4,6 +4,7 @@ using System.IO;
using System.Net; using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace CryptoExchange.Net.Testing.Implementations 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);
} }
} }