dotnet/aspnetcore

`RouteHandlerBuilder.Accepts` does not return 415 response when the request has no `Content-Type`

Open

#45 264 ouverte le 24 nov. 2022

Voir sur GitHub
 (7 commentaires) (0 réactions) (0 assignés)C# (10 653 forks)batch import
Docsarea-minimalhelp wantednet8_docathon

Métriques du dépôt

Stars
 (37 933 stars)
Métriques de merge PR
 (Merge moyen 16j 9h) (258 PRs mergées en 30 j)

Description

Is there an existing issue for this?

  • I have searched the existing issues

Describe the bug

This is probably a duplicate of #43794 but I would like to get further information on this issue, namely:

  1. If empty string is not in the list of content types to accept, why should empty string not be handled as 415?
  2. Given the current behavior of Accepts, is an explicit check for the existence of the Content-Type header required?

Code:

app.MapPut("/file", Created (HttpRequest request) =>
{
	return TypedResults.Created("https://example.org");
})
.WithOpenApi()
.Accepts<byte[]>("application/zip")
.Produces(StatusCodes.Status415UnsupportedMediaType);

Expected Behavior

415 Unsupported Media Type is returned.

Actual Behavior

201 Created is returned.

Steps To Reproduce

After dotnet run, make a PUT request with no header

Exceptions (if any)

No response

.NET Version

7.0.100

Anything else?

No response

Guide contributeur