diff --git a/CryptoExchange.Net/Clients/RestApiClient.cs b/CryptoExchange.Net/Clients/RestApiClient.cs index 81e1ebb..3504c43 100644 --- a/CryptoExchange.Net/Clients/RestApiClient.cs +++ b/CryptoExchange.Net/Clients/RestApiClient.cs @@ -215,11 +215,14 @@ namespace CryptoExchange.Net.Clients while (true) { 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) return new WebCallResult(prepareResult.Error!); var request = CreateRequest( + requestId, baseAddress, definition, uriParameters, @@ -249,6 +252,7 @@ namespace CryptoExchange.Net.Clients /// /// Prepare before sending a request. Sync time between client and server and check rate limits /// + /// Request id /// Host and schema /// Request definition /// Cancellation token @@ -257,13 +261,13 @@ namespace CryptoExchange.Net.Clients /// /// protected virtual async Task PrepareAsync( + int requestId, string baseAddress, RequestDefinition definition, CancellationToken cancellationToken, Dictionary? additionalHeaders = null, int? weight = null) { - var requestId = ExchangeHelpers.NextId(); var requestWeight = weight ?? definition.Weight; // Time sync @@ -324,6 +328,7 @@ namespace CryptoExchange.Net.Clients /// /// Creates a request object /// + /// Id of the request /// Host and schema /// Request definition /// The query parameters of the request @@ -331,6 +336,7 @@ namespace CryptoExchange.Net.Clients /// Additional headers to send with the request /// protected virtual IRequest CreateRequest( + int requestId, string baseAddress, RequestDefinition definition, ParameterCollection? uriParameters, @@ -343,7 +349,6 @@ namespace CryptoExchange.Net.Clients var uri = new Uri(baseAddress.AppendPath(definition.Path)); var arraySerialization = definition.ArraySerialization ?? ArraySerialization; var bodyFormat = definition.RequestBodyFormat ?? RequestBodyFormat; - var requestId = ExchangeHelpers.NextId(); var parameterPosition = definition.ParameterPosition ?? ParameterPositions[definition.Method]; var headers = new Dictionary();