Some WebSocket servers use the Content-Type header to determine which serialization format to use for its WebSocket messages. However, HTTPInitialRequestHandleradds a hard-coded Content-Type: text/plain; charset=utf-8 header to the WebSocket client’s HTTP upgrade request, so the client cannot customize the header value.
Given that the HTTP upgrade request body is empty, there is no need for HTTPInitialRequestHandler to add the Content-Type header. This will allow the client to add their own, if desired.
To Reproduce
try await WebSocket.connect(to: url,
on: eventLoopGroup) { webSocket in
// …
}
Expected behavior
The HTTP upgrade request should not have a Content-Type header.
Describe the bug
Some WebSocket servers use the
Content-Type
header to determine which serialization format to use for its WebSocket messages. However,HTTPInitialRequestHandler
adds a hard-codedContent-Type: text/plain; charset=utf-8
header to the WebSocket client’s HTTP upgrade request, so the client cannot customize the header value.Given that the HTTP upgrade request body is empty, there is no need for
HTTPInitialRequestHandler
to add theContent-Type
header. This will allow the client to add their own, if desired.To Reproduce
Expected behavior
The HTTP upgrade request should not have a
Content-Type
header.Environment