@@ -84,6 +84,9 @@ export class HttpClient {
84
84
method : requestDefn . method ,
85
85
signal : options . abortSignal ,
86
86
87
+ setDefaultHeaders : false ,
88
+ headers : flattenPairedRawHeaders ( requestDefn . headers ) ,
89
+
87
90
// Low-level connection configuration:
88
91
agent,
89
92
lookup : this . getDns ( options . lookupOptions ?. servers ) ,
@@ -101,7 +104,7 @@ export class HttpClient {
101
104
? tls . rootCertificates . concat ( additionalCAs . map ( ( { cert } ) => cert ) )
102
105
: undefined
103
106
} )
104
- } ) ;
107
+ } as any ) ; // Would be nice to avoid this but raw header options aren't in the types yet
105
108
106
109
if ( options . keyLogFile ) {
107
110
request . on ( 'socket' , ( socket ) => {
@@ -114,19 +117,6 @@ export class HttpClient {
114
117
request . abort ( ) ;
115
118
} ) ;
116
119
117
- // Node supports sending raw headers via [key, value, key, value] array, but if we do
118
- // so with 'headers' above then we can't removeHeader first (to disable the defaults).
119
- // Instead we remove headers and then manually trigger the 'raw' write behaviour.
120
-
121
- request . removeHeader ( 'connection' ) ;
122
- request . removeHeader ( 'transfer-encoding' ) ;
123
- request . removeHeader ( 'content-length' ) ;
124
-
125
- ( request as any ) . _storeHeader (
126
- request . method + ' ' + request . path + ' HTTP/1.1\r\n' ,
127
- flattenPairedRawHeaders ( requestDefn . headers )
128
- ) ;
129
-
130
120
if ( requestDefn . rawBody ?. byteLength ) {
131
121
request . end ( requestDefn . rawBody ) ;
132
122
} else {
0 commit comments