diff --git a/.circleci/config.yml b/.circleci/config.yml index d2cc971c9..925d13c90 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -146,6 +146,12 @@ jobs: - image: *default-dotnet-image steps: - checkout + - run: | + sed -i '/netcoreapp3.1;net5.0;net6.0;net7.0<\/TargetFrameworks>/c\'net7.0'<\/TargetFramework>' Client.Core.Test/Client.Core.Test.csproj + sed -i '/netcoreapp3.1;net5.0;net6.0;net7.0<\/TargetFrameworks>/c\'net7.0'<\/TargetFramework>' Client.Test/Client.Test.csproj + sed -i '/netcoreapp3.1;net5.0;net6.0;net7.0<\/TargetFrameworks>/c\'net7.0'<\/TargetFramework>' Client.Legacy.Test/Client.Legacy.Test.csproj + sed -i '/netcoreapp3.1;net5.0;net6.0;net7.0<\/TargetFrameworks>/c\'net7.0'<\/TargetFramework>' Client.Linq.Test/Client.Linq.Test.csproj + sed -i '/netcoreapp3.1;net5.0;net6.0;net7.0<\/TargetFrameworks>/c\'net7.0'<\/TargetFramework>' Examples/Examples.csproj - run: name: Check compilation warnings command: | diff --git a/CHANGELOG.md b/CHANGELOG.md index c200a8a93..434ebc962 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ Update dependencies: - [#497](https://github.com/influxdata/influxdb-client-csharp/pull/497): `NodaTime` to `3.1.9` - [#485](https://github.com/influxdata/influxdb-client-csharp/pull/485): `Newtonsoft.Json` to `13.0.3` - [#506](https://github.com/influxdata/influxdb-client-csharp/pull/506): `Microsoft.Extensions.ObjectPool` to `7.0.5` + - [#509](https://github.com/influxdata/influxdb-client-csharp/pull/509): `RestSharp` to `110.2.0` #### Examples: - [#511](https://github.com/influxdata/influxdb-client-csharp/pull/511): `Radzen.Blazor` to `4.10.1` diff --git a/Client.Core/Client.Core.csproj b/Client.Core/Client.Core.csproj index 3b3934d8f..bb57b137e 100644 --- a/Client.Core/Client.Core.csproj +++ b/Client.Core/Client.Core.csproj @@ -36,7 +36,7 @@ - + diff --git a/Client.Core/Internal/AbstractQueryClient.cs b/Client.Core/Internal/AbstractQueryClient.cs index b675cec82..c4d65b749 100644 --- a/Client.Core/Internal/AbstractQueryClient.cs +++ b/Client.Core/Internal/AbstractQueryClient.cs @@ -39,7 +39,7 @@ protected AbstractQueryClient(IFluxResultMapper mapper, FluxCsvParser csvParser) _csvParser = csvParser; } - protected Task Query(Func, RestRequest> queryFn, + protected Task Query(Func, RestRequest> queryFn, FluxCsvParser.IFluxResponseConsumer responseConsumer, Action onError, Action onComplete, CancellationToken cancellationToken) @@ -59,7 +59,7 @@ void Consumer(Stream bufferedStream) return Query(queryFn, Consumer, onError, onComplete, cancellationToken); } - protected Task QueryRaw(Func, RestRequest> queryFn, + protected Task QueryRaw(Func, RestRequest> queryFn, Action onResponse, Action onError, Action onComplete, CancellationToken cancellationToken) @@ -79,7 +79,7 @@ void Consumer(Stream bufferedStream) return Query(queryFn, Consumer, onError, onComplete, cancellationToken); } - protected void QuerySync(Func, RestRequest> queryFn, + protected void QuerySync(Func, RestRequest> queryFn, FluxCsvParser.IFluxResponseConsumer responseConsumer, Action onError, Action onComplete, @@ -100,7 +100,7 @@ void Consumer(CancellationToken cancellable, Stream bufferedStream) QuerySync(queryFn, Consumer, onError, onComplete, cancellationToken); } - private async Task Query(Func, RestRequest> queryFn, + private async Task Query(Func, RestRequest> queryFn, Action consumer, Action onError, Action onComplete, CancellationToken cancellationToken) { @@ -111,7 +111,7 @@ private async Task Query(Func, RestReque try { - var query = queryFn.Invoke(response => + var query = queryFn.Invoke((response, request) => { var result = GetStreamFromResponse(response, cancellationToken); result = AfterIntercept((int)response.StatusCode, @@ -121,7 +121,7 @@ private async Task Query(Func, RestReque RaiseForInfluxError(response, result); consumer(result); - return FromHttpResponseMessage(response); + return FromHttpResponseMessage(response, request); }); BeforeIntercept(query); @@ -144,7 +144,7 @@ private async Task Query(Func, RestReque } } - private void QuerySync(Func, RestRequest> queryFn, + private void QuerySync(Func, RestRequest> queryFn, Action consumer, Action onError, Action onComplete, CancellationToken cancellationToken) { @@ -155,7 +155,7 @@ private void QuerySync(Func, RestRequest try { - var query = queryFn.Invoke(response => + var query = queryFn.Invoke((response, request) => { var result = GetStreamFromResponse(response, cancellationToken); result = AfterIntercept((int)response.StatusCode, @@ -165,7 +165,7 @@ private void QuerySync(Func, RestRequest RaiseForInfluxError(response, result); consumer(cancellationToken, result); - return FromHttpResponseMessage(response); + return FromHttpResponseMessage(response, request); }); BeforeIntercept(query); @@ -188,13 +188,14 @@ private void QuerySync(Func, RestRequest } protected async IAsyncEnumerable QueryEnumerable( - Func, RestRequest> queryFn, Func convert, + Func, RestRequest> queryFn, + Func convert, [EnumeratorCancellation] CancellationToken cancellationToken) { Arguments.CheckNotNull(queryFn, nameof(queryFn)); Stream stream = null; - var query = queryFn.Invoke(response => + var query = queryFn.Invoke((response, request) => { stream = GetStreamFromResponse(response, cancellationToken); stream = AfterIntercept((int)response.StatusCode, @@ -202,7 +203,7 @@ protected async IAsyncEnumerable QueryEnumerable( RaiseForInfluxError(response, stream); - return FromHttpResponseMessage(response); + return FromHttpResponseMessage(response, request); }); BeforeIntercept(query); @@ -381,9 +382,9 @@ public void Accept(int index, FluxRecord record) } } - private RestResponse FromHttpResponseMessage(HttpResponseMessage response) + private RestResponse FromHttpResponseMessage(HttpResponseMessage response, RestRequest request) { - return new RestResponse + return new RestResponse(request) { ErrorException = response.IsSuccessStatusCode ? null diff --git a/Client.Core/Internal/RestSharpExtensions.cs b/Client.Core/Internal/RestSharpExtensions.cs index 28efda99b..fcb01b114 100644 --- a/Client.Core/Internal/RestSharpExtensions.cs +++ b/Client.Core/Internal/RestSharpExtensions.cs @@ -28,7 +28,7 @@ internal static IEnumerable ToHeaderParameters(this HttpHeaders } internal static RestRequest AddAdvancedResponseHandler(this RestRequest restRequest, - Func advancedResponseWriter) + Func advancedResponseWriter) { var field = restRequest.GetType() .GetField("_advancedResponseHandler", BindingFlags.Instance | BindingFlags.NonPublic); diff --git a/Client.Legacy/FluxClient.cs b/Client.Legacy/FluxClient.cs index 0d88e335f..1c6e935dd 100644 --- a/Client.Legacy/FluxClient.cs +++ b/Client.Legacy/FluxClient.cs @@ -423,7 +423,7 @@ private RestRequest PingRequest() return new RestRequest("ping"); } - private Func, RestRequest> QueryRequest(string query) + private Func, RestRequest> QueryRequest(string query) { return advancedResponseWriter => new RestRequest("api/v2/query", Method.Post) .AddAdvancedResponseHandler(advancedResponseWriter) diff --git a/Client.Test/WriteApiAsyncTest.cs b/Client.Test/WriteApiAsyncTest.cs index 76a8a16f6..90c613bc2 100644 --- a/Client.Test/WriteApiAsyncTest.cs +++ b/Client.Test/WriteApiAsyncTest.cs @@ -263,7 +263,8 @@ private string GetRequestBody(RestResponse restResponse) { var bytes = (byte[])restResponse.Request?.Parameters .GetParameters(ParameterType.RequestBody) - .TryFind("text/plain")?.Value ?? + .First() + .Value ?? throw new AssertionException("The body is required."); return Encoding.Default.GetString(bytes); } diff --git a/Client/Internal/ApiClient.cs b/Client/Internal/ApiClient.cs index 696cc114d..8b9779a1b 100644 --- a/Client/Internal/ApiClient.cs +++ b/Client/Internal/ApiClient.cs @@ -25,6 +25,8 @@ public partial class ApiClient private bool _initializedSessionTokens = false; private bool _signout; + private IAuthenticator _authenticator; + private CookieContainer _cookieContainerCookieContainer; public ApiClient(InfluxDBClientOptions options, LoggingHandler loggingHandler, GzipHandler gzipHandler) { @@ -92,6 +94,9 @@ internal void BeforeIntercept(RestRequest request) InitToken(); } + request.CookieContainer = _cookieContainerCookieContainer; + request.Authenticator = _authenticator; + _loggingHandler.BeforeIntercept(request); _gzipHandler.BeforeIntercept(request); } @@ -141,7 +146,12 @@ private void InitToken() .FirstOrDefault(it => string.Equals("Set-Cookie", it.Name, StringComparison.OrdinalIgnoreCase)); - RestClient.Authenticator = new CookieRedirectAuthenticator(headerParameter); + _authenticator = new CookieRedirectAuthenticator(headerParameter); + } + else + { + _cookieContainerCookieContainer = new CookieContainer(); + _cookieContainerCookieContainer.Add(authResponse.Cookies); } } } @@ -159,10 +169,11 @@ protected internal void Signout() _signout = true; _initializedSessionTokens = false; + _cookieContainerCookieContainer = null; var request = new RestRequest("/api/v2/signout", Method.Post); RestClient.ExecuteAsync(request).ConfigureAwait(false).GetAwaiter().GetResult(); - RestClient.Authenticator = null; + _authenticator = null; } } diff --git a/Client/InvokableScriptsApi.cs b/Client/InvokableScriptsApi.cs index 79f4b06af..c26d1d373 100644 --- a/Client/InvokableScriptsApi.cs +++ b/Client/InvokableScriptsApi.cs @@ -300,7 +300,7 @@ private Task InvokeScript(string scriptId, FluxCsvParser.IFluxResponseConsumer c cancellationToken); } - private Func, RestRequest> CreateRequest(string scriptId, + private Func, RestRequest> CreateRequest(string scriptId, Dictionary bindParams = default) { Arguments.CheckNonEmptyString(scriptId, nameof(scriptId)); diff --git a/Client/QueryApi.cs b/Client/QueryApi.cs index ad2d8254c..361d10457 100644 --- a/Client/QueryApi.cs +++ b/Client/QueryApi.cs @@ -783,7 +783,8 @@ private Task QueryAsync(Query query, FluxCsvParser.IFluxResponseConsumer consume cancellationToken); } - private Func, RestRequest> CreateRequest(Query query, string org = null) + private Func, RestRequest> CreateRequest(Query query, + string org = null) { Arguments.CheckNotNull(query, nameof(query)); diff --git a/Client/QueryApiSync.cs b/Client/QueryApiSync.cs index 30cbb2a44..3344c8a66 100644 --- a/Client/QueryApiSync.cs +++ b/Client/QueryApiSync.cs @@ -136,7 +136,7 @@ public List QuerySync(Query query, string org = null, CancellationToken ca var consumer = new FluxResponseConsumerPoco(poco => { measurements.Add(poco); }, Mapper); - RestRequest QueryFn(Func advancedResponseWriter) + RestRequest QueryFn(Func advancedResponseWriter) { return _service .PostQueryWithRestRequest(null, "application/json", null, optionsOrg, null, query) @@ -188,7 +188,7 @@ public List QuerySync(Query query, string org = null, CancellationTok var optionsOrg = org ?? _options.Org; Arguments.CheckNonEmptyString(optionsOrg, OrgArgumentValidation); - RestRequest QueryFn(Func advancedResponseWriter) + RestRequest QueryFn(Func advancedResponseWriter) { return _service .PostQueryWithRestRequest(null, "application/json", null, optionsOrg, null, query) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy