dotnet / dotnet/aspnetcore

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

Open
#45,264 7 comments 0 reactions 0 assignees View on GitHub
area-minimal Docs help wanted net8_docathon
Dominant language
C#
Stars
38.4k
Forks
10.9k
Avg merge
2d 5h
Merged PRs (30d)
276

Description

### 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:
```cs
app.MapPut("/file", Created (HttpRequest request) =>
{
return TypedResults.Created("https://example.org");
})
.WithOpenApi()
.Accepts("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_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.