Search Issue Tracker
By Design
By Design in 2023.1.X
Votes
0
Found in
2023.1.0a1
Issue ID
UUM-3994
Regression
No
When sending a GET request with a body using HttpClient, a ProtocolViolationException is thrown
How to reproduce:
1. Open the attached project ("unity-http-get-with-body-request.zip")
2. Enter Play Mode
3. Observe the output in the Console
Expected result: The request returns a response successfully and it is logged in the Console
Actual result: A "Cannot send a content-body with this verb-type" or "Cannot send data when method is: GET" ProtocolViolationException is thrown
Reproducible with: Windows, macOS (2019.4.39f1, 2020.3.35f1), Windows (2021.3.4f1, 2022.1.4f1, 2022.2.0a16)
Tested on:
macOS 12.1 (Intel)
Windows 11
Note:
- When using .NET (instead of Mono) outside of the Editor, the exception is thrown with .NET Framework but not .NET Core
- Reproducible in Editor and build
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Performance Markers Search window shows an empty entry in the list
- Enabling Deep Profiling in Performance Markers Search window breaks Inspector panel buttons when navigating through the marker items
- An "InvalidOperationException" error is thrown when TryRemoveItem is used with rebuildTree set to false
- Build fails with IL2CPP error when building on Android platform in a specific project
- Resize to Fit option for Import Activity window's Columns does nothing
Resolution Note:
As per: https://github.com/dotnet/runtime/issues/25485 -- the .Net Framework Http client is more strict when it comes to undefined behaviors and therefore rejects by default. Our mono is in a state where the windows runtime is using the legacy .Net implementation under the hood whereas MacOS has been switched over to using the CoreFX (newer) behavior and is more permissive.
Resolution Note (2023.1.X):
As per: https://github.com/dotnet/runtime/issues/25485 -- the .Net Framework Http client is more strict when it comes to undefined behaviors and therefore rejects by default. Our mono is in a state where the windows runtime is using the legacy .Net implementation under the hood whereas MacOS has been switched over to using the CoreFX (newer) behavior and is more permissive.