From 3acdd10be4800f376f5f008fd202b3a776409695 Mon Sep 17 00:00:00 2001 From: Brendan Forster Date: Sun, 31 May 2015 22:44:41 +0930 Subject: [PATCH] deprecate the optional AllowAutoRedirect parameter --- Octokit.Tests/Http/RedirectHandlerTests.cs | 13 ------------- Octokit/Http/Connection.cs | 8 +++----- Octokit/Http/HttpClientAdapter.cs | 6 ------ Octokit/Http/IRequest.cs | 1 + Octokit/Http/Request.cs | 3 ++- 5 files changed, 6 insertions(+), 25 deletions(-) diff --git a/Octokit.Tests/Http/RedirectHandlerTests.cs b/Octokit.Tests/Http/RedirectHandlerTests.cs index beb55b87..5ba2face 100644 --- a/Octokit.Tests/Http/RedirectHandlerTests.cs +++ b/Octokit.Tests/Http/RedirectHandlerTests.cs @@ -102,18 +102,6 @@ namespace Octokit.Tests.Http Assert.Null(response.RequestMessage.Headers.Authorization); } - - [Fact] - public async Task DisabledRedirectShouldPassThrough() - { - var invoker = CreateInvoker(new HttpResponseMessage(HttpStatusCode.Found)); - var httpRequestMessage = CreateRequest(HttpMethod.Get); - httpRequestMessage.Properties[RedirectHandler.AllowAutoRedirectKey] = false; - var response = await invoker.SendAsync(httpRequestMessage, new CancellationToken()); - - Assert.Equal(response.StatusCode, HttpStatusCode.Redirect); - Assert.Same(response.RequestMessage, httpRequestMessage); - } [Theory] [InlineData(HttpStatusCode.MovedPermanently)] // 301 @@ -179,7 +167,6 @@ namespace Octokit.Tests.Http { var httpRequestMessage = new HttpRequestMessage(); httpRequestMessage.RequestUri = new Uri("http://example.org/foo"); - httpRequestMessage.Properties[RedirectHandler.AllowAutoRedirectKey] = true; httpRequestMessage.Method = method; return httpRequestMessage; } diff --git a/Octokit/Http/Connection.cs b/Octokit/Http/Connection.cs index c8597dad..0488d71d 100644 --- a/Octokit/Http/Connection.cs +++ b/Octokit/Http/Connection.cs @@ -153,12 +153,12 @@ namespace Octokit /// Specifies accepted response media types. /// To follow redirect links automatically or not /// representing the received HTTP response - + [Obsolete("allowAutoRedirect is no longer respected and will be deprecated in a future release")] public Task> Get(Uri uri, IDictionary parameters, string accepts, bool allowAutoRedirect) { Ensure.ArgumentNotNull(uri, "uri"); - return SendData(uri.ApplyParameters(parameters), HttpMethod.Get, null, accepts, null, CancellationToken.None, allowAutoRedirect: allowAutoRedirect); + return SendData(uri.ApplyParameters(parameters), HttpMethod.Get, null, accepts, null, CancellationToken.None); } public Task> Get(Uri uri, IDictionary parameters, string accepts, CancellationToken cancellationToken) @@ -321,8 +321,7 @@ namespace Octokit string contentType, CancellationToken cancellationToken, string twoFactorAuthenticationCode = null, - Uri baseAddress = null, - bool allowAutoRedirect = true) + Uri baseAddress = null) { Ensure.ArgumentNotNull(uri, "uri"); @@ -331,7 +330,6 @@ namespace Octokit Method = method, BaseAddress = baseAddress ?? BaseAddress, Endpoint = uri, - AllowAutoRedirect = allowAutoRedirect, }; return SendDataInternal(body, accepts, contentType, cancellationToken, twoFactorAuthenticationCode, request); diff --git a/Octokit/Http/HttpClientAdapter.cs b/Octokit/Http/HttpClientAdapter.cs index 7c45be56..e84401d6 100644 --- a/Octokit/Http/HttpClientAdapter.cs +++ b/Octokit/Http/HttpClientAdapter.cs @@ -104,7 +104,6 @@ namespace Octokit.Internal var fullUri = new Uri(request.BaseAddress, request.Endpoint); requestMessage = new HttpRequestMessage(request.Method, fullUri); - requestMessage.Properties["AllowAutoRedirect"] = request.AllowAutoRedirect; foreach (var header in request.Headers) { requestMessage.Headers.Add(header.Key, header.Value); @@ -166,7 +165,6 @@ namespace Octokit.Internal internal class RedirectHandler : DelegatingHandler { - public const string AllowAutoRedirectKey = "AllowAutoRedirect"; public const string RedirectCountKey = "RedirectCount"; public bool Enabled { get; set; } @@ -177,10 +175,6 @@ namespace Octokit.Internal // Can't redirect without somewhere to redirect too. Throw? if (response.Headers.Location == null) return response; - // Don't redirect if redirection has been disabled for this request - var allowAutoRedirect = (bool)request.Properties[AllowAutoRedirectKey]; - if (!allowAutoRedirect) return response; // Throw? - // Don't redirect if we exceed max number of redirects var redirectCount = 0; if (request.Properties.Keys.Contains(RedirectCountKey)) diff --git a/Octokit/Http/IRequest.cs b/Octokit/Http/IRequest.cs index f52b2e52..31fbc578 100644 --- a/Octokit/Http/IRequest.cs +++ b/Octokit/Http/IRequest.cs @@ -14,6 +14,7 @@ namespace Octokit.Internal Uri Endpoint { get; } TimeSpan Timeout { get; } string ContentType { get; } + [Obsolete("This value is no longer respected due to the necessary redirect work")] bool AllowAutoRedirect { get; } } } diff --git a/Octokit/Http/Request.cs b/Octokit/Http/Request.cs index cd6dad4d..f9300fd4 100644 --- a/Octokit/Http/Request.cs +++ b/Octokit/Http/Request.cs @@ -11,7 +11,6 @@ namespace Octokit.Internal { Headers = new Dictionary(); Parameters = new Dictionary(); - AllowAutoRedirect = true; Timeout = TimeSpan.FromSeconds(100); } @@ -23,6 +22,8 @@ namespace Octokit.Internal public Uri Endpoint { get; set; } public TimeSpan Timeout { get; set; } public string ContentType { get; set; } + + [Obsolete("This value is no longer respected due to the necessary redirect work")] public bool AllowAutoRedirect { get; set; } } }