With httpi 4.0, httpi downcases sent headers because it uses a copy of Rack's Rack::Headers class. This class downcases headers and this works fine because Rack is meant for processing incoming HTTP requests. However, since httpi is used for sending requests, this behavior breaks use cases where HTTP requests need to be sent to misbehaving servers that require a particular casing.
Please consider replacing the HTTPI::Utils::Headers implementation with the implemenation of Rack::Utils::HeadersHash from Rack 2.2.9. This implementation is case preserving and does not downcase headers.
With httpi 4.0, httpi downcases sent headers because it uses a copy of Rack's Rack::Headers class. This class downcases headers and this works fine because Rack is meant for processing incoming HTTP requests. However, since httpi is used for sending requests, this behavior breaks use cases where HTTP requests need to be sent to misbehaving servers that require a particular casing.
Please consider replacing the HTTPI::Utils::Headers implementation with the implemenation of Rack::Utils::HeadersHash from Rack 2.2.9. This implementation is case preserving and does not downcase headers.