Library/API/IoT binding
nanoFramework.System.Net.Http
Visual Studio version
Microsoft Visual Studio Enterprise 2022 (64-bit) - Preview Version 17.14.0 Preview 2.0
.NET nanoFramework extension version
2022.12.136
Target name(s)
ESP32-S3
Firmware version
No response
Device capabilities
Target capabilities:
Has nanoBooter: NO
IFU capable: NO
Has proprietary bootloader: YES
Description
It is not possible to add Http headers (like User-Agent, Accept) to HttpClient by DefaultRequestHeaders or HttpRequestMessage . Trying to add standard Headers, produces the following exception:
Cannot update restricted header User-Agent.
Cannot update restricted header Accept.
Inspecting the online source code reveals that the problem arises from WebHeaderCollection class in ThrowOnRestrictedHeader method:
the class has a property named HInfo with type of HeaderInfoTable . HeaderInfoTable has a table with predefined Http Headers (Like User-Agent) .
User can not add a Http Header if that header exists in the HeaderInfoTable.
So, how can I add (or change) standard Http Header to httpClient (Like User-Agent,Accept)?
How to reproduce
1.Create a Static HttpClient
httpClient = new HttpClient();
2.Try to Add Headers To DefaultRequestHeaders
httpClient.DefaultRequestHeaders.Add("Accept", "application/json");
httpClient.DefaultRequestHeaders.Add("Accept-Language", "en-US,en;q=0.5");
httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:136.0) Gecko/20100101 Firefox/136.0");
Expected behaviour
It should be possible to Add or Change Standard Http Headers to HttpClient
Screenshots
No response
Sample project or code
No response
Aditional information
No response
Library/API/IoT binding
nanoFramework.System.Net.Http
Visual Studio version
Microsoft Visual Studio Enterprise 2022 (64-bit) - Preview Version 17.14.0 Preview 2.0
.NET nanoFramework extension version
2022.12.136
Target name(s)
ESP32-S3
Firmware version
No response
Device capabilities
Target capabilities:
Has nanoBooter: NO
IFU capable: NO
Has proprietary bootloader: YES
Description
It is not possible to add Http headers (like User-Agent, Accept) to HttpClient by DefaultRequestHeaders or HttpRequestMessage . Trying to add standard Headers, produces the following exception:
Cannot update restricted header User-Agent.
Cannot update restricted header Accept.
Inspecting the online source code reveals that the problem arises from WebHeaderCollection class in ThrowOnRestrictedHeader method:
the class has a property named HInfo with type of HeaderInfoTable . HeaderInfoTable has a table with predefined Http Headers (Like User-Agent) .
User can not add a Http Header if that header exists in the HeaderInfoTable.
So, how can I add (or change) standard Http Header to httpClient (Like User-Agent,Accept)?
How to reproduce
1.Create a Static HttpClient
httpClient = new HttpClient();2.Try to Add Headers To DefaultRequestHeaders
Expected behaviour
It should be possible to Add or Change Standard Http Headers to HttpClient
Screenshots
No response
Sample project or code
No response
Aditional information
No response