Fix max redirect count (#20428)
Without this change, RedirectHandler always follows MaxRedirects + 1. If MaxRedirects was initially set to 1, the body of the while statement is executed twice. This defect expresses itself when calling WebApplicationFactory<Startup>.CreateClient() with WebApplicationFactoryClientOptions.MaxAutomaticRedirections >= 1 and .AllowAutoRedirects = true in integration tests.
This commit is contained in:
parent
f9ee790d02
commit
ada3bdf45d
|
|
@ -54,7 +54,7 @@ namespace Microsoft.AspNetCore.Mvc.Testing.Handlers
|
||||||
var originalRequestContent = HasBody(request) ? await DuplicateRequestContent(request) : null;
|
var originalRequestContent = HasBody(request) ? await DuplicateRequestContent(request) : null;
|
||||||
CopyRequestHeaders(request.Headers, redirectRequest.Headers);
|
CopyRequestHeaders(request.Headers, redirectRequest.Headers);
|
||||||
var response = await base.SendAsync(request, cancellationToken);
|
var response = await base.SendAsync(request, cancellationToken);
|
||||||
while (IsRedirect(response) && remainingRedirects >= 0)
|
while (IsRedirect(response) && remainingRedirects > 0)
|
||||||
{
|
{
|
||||||
remainingRedirects--;
|
remainingRedirects--;
|
||||||
UpdateRedirectRequest(response, redirectRequest, originalRequestContent);
|
UpdateRedirectRequest(response, redirectRequest, originalRequestContent);
|
||||||
|
|
@ -168,4 +168,4 @@ namespace Microsoft.AspNetCore.Mvc.Testing.Handlers
|
||||||
response.StatusCode == HttpStatusCode.RedirectKeepVerb ||
|
response.StatusCode == HttpStatusCode.RedirectKeepVerb ||
|
||||||
(int)response.StatusCode == 308;
|
(int)response.StatusCode == 308;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue