aspnetcore icon indicating copy to clipboard operation
aspnetcore copied to clipboard

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

Open FranklinWhale opened this issue 3 years ago • 0 comments

Is there an existing issue for this?

  • [X] 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

FranklinWhale avatar Nov 24 '22 13:11 FranklinWhale