1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2025-06-07 16:06:15 +00:00

Fixed request ids not matching

This commit is contained in:
JKorf 2024-06-26 11:21:52 +02:00
parent 25567ea434
commit fcfeaf568f

View File

@ -215,11 +215,14 @@ namespace CryptoExchange.Net.Clients
while (true) while (true)
{ {
currentTry++; currentTry++;
var prepareResult = await PrepareAsync(baseAddress, definition, cancellationToken, additionalHeaders, weight).ConfigureAwait(false); var requestId = ExchangeHelpers.NextId();
var prepareResult = await PrepareAsync(requestId, baseAddress, definition, cancellationToken, additionalHeaders, weight).ConfigureAwait(false);
if (!prepareResult) if (!prepareResult)
return new WebCallResult<T>(prepareResult.Error!); return new WebCallResult<T>(prepareResult.Error!);
var request = CreateRequest( var request = CreateRequest(
requestId,
baseAddress, baseAddress,
definition, definition,
uriParameters, uriParameters,
@ -249,6 +252,7 @@ namespace CryptoExchange.Net.Clients
/// <summary> /// <summary>
/// Prepare before sending a request. Sync time between client and server and check rate limits /// Prepare before sending a request. Sync time between client and server and check rate limits
/// </summary> /// </summary>
/// <param name="requestId">Request id</param>
/// <param name="baseAddress">Host and schema</param> /// <param name="baseAddress">Host and schema</param>
/// <param name="definition">Request definition</param> /// <param name="definition">Request definition</param>
/// <param name="cancellationToken">Cancellation token</param> /// <param name="cancellationToken">Cancellation token</param>
@ -257,13 +261,13 @@ namespace CryptoExchange.Net.Clients
/// <returns></returns> /// <returns></returns>
/// <exception cref="Exception"></exception> /// <exception cref="Exception"></exception>
protected virtual async Task<CallResult> PrepareAsync( protected virtual async Task<CallResult> PrepareAsync(
int requestId,
string baseAddress, string baseAddress,
RequestDefinition definition, RequestDefinition definition,
CancellationToken cancellationToken, CancellationToken cancellationToken,
Dictionary<string, string>? additionalHeaders = null, Dictionary<string, string>? additionalHeaders = null,
int? weight = null) int? weight = null)
{ {
var requestId = ExchangeHelpers.NextId();
var requestWeight = weight ?? definition.Weight; var requestWeight = weight ?? definition.Weight;
// Time sync // Time sync
@ -324,6 +328,7 @@ namespace CryptoExchange.Net.Clients
/// <summary> /// <summary>
/// Creates a request object /// Creates a request object
/// </summary> /// </summary>
/// <param name="requestId">Id of the request</param>
/// <param name="baseAddress">Host and schema</param> /// <param name="baseAddress">Host and schema</param>
/// <param name="definition">Request definition</param> /// <param name="definition">Request definition</param>
/// <param name="uriParameters">The query parameters of the request</param> /// <param name="uriParameters">The query parameters of the request</param>
@ -331,6 +336,7 @@ namespace CryptoExchange.Net.Clients
/// <param name="additionalHeaders">Additional headers to send with the request</param> /// <param name="additionalHeaders">Additional headers to send with the request</param>
/// <returns></returns> /// <returns></returns>
protected virtual IRequest CreateRequest( protected virtual IRequest CreateRequest(
int requestId,
string baseAddress, string baseAddress,
RequestDefinition definition, RequestDefinition definition,
ParameterCollection? uriParameters, ParameterCollection? uriParameters,
@ -343,7 +349,6 @@ namespace CryptoExchange.Net.Clients
var uri = new Uri(baseAddress.AppendPath(definition.Path)); var uri = new Uri(baseAddress.AppendPath(definition.Path));
var arraySerialization = definition.ArraySerialization ?? ArraySerialization; var arraySerialization = definition.ArraySerialization ?? ArraySerialization;
var bodyFormat = definition.RequestBodyFormat ?? RequestBodyFormat; var bodyFormat = definition.RequestBodyFormat ?? RequestBodyFormat;
var requestId = ExchangeHelpers.NextId();
var parameterPosition = definition.ParameterPosition ?? ParameterPositions[definition.Method]; var parameterPosition = definition.ParameterPosition ?? ParameterPositions[definition.Method];
var headers = new Dictionary<string, string>(); var headers = new Dictionary<string, string>();