@@ -23,19 +23,16 @@ var Request = module.exports = function (xhr, params) {
23
23
self . uri ,
24
24
true
25
25
) ;
26
+
27
+ self . _headers = { } ;
26
28
27
29
if ( params . headers ) {
28
30
var keys = objectKeys ( params . headers ) ;
29
31
for ( var i = 0 ; i < keys . length ; i ++ ) {
30
32
var key = keys [ i ] ;
31
33
if ( ! self . isSafeRequestHeader ( key ) ) continue ;
32
34
var value = params . headers [ key ] ;
33
- if ( isArray ( value ) ) {
34
- for ( var j = 0 ; j < value . length ; j ++ ) {
35
- xhr . setRequestHeader ( key , value [ j ] ) ;
36
- }
37
- }
38
- else xhr . setRequestHeader ( key , value )
35
+ self . setHeader ( key , value ) ;
39
36
}
40
37
}
41
38
@@ -61,14 +58,15 @@ var Request = module.exports = function (xhr, params) {
61
58
inherits ( Request , Stream ) ;
62
59
63
60
Request . prototype . setHeader = function ( key , value ) {
64
- if ( isArray ( value ) ) {
65
- for ( var i = 0 ; i < value . length ; i ++ ) {
66
- this . xhr . setRequestHeader ( key , value [ i ] ) ;
67
- }
68
- }
69
- else {
70
- this . xhr . setRequestHeader ( key , value ) ;
71
- }
61
+ this . _headers [ key . toLowerCase ( ) ] = value
62
+ } ;
63
+
64
+ Request . prototype . getHeader = function ( key ) {
65
+ return this . _headers [ key . toLowerCase ( ) ]
66
+ } ;
67
+
68
+ Request . prototype . removeHeader = function ( key ) {
69
+ delete this . _headers [ key . toLowerCase ( ) ]
72
70
} ;
73
71
74
72
Request . prototype . write = function ( s ) {
@@ -82,6 +80,19 @@ Request.prototype.destroy = function (s) {
82
80
83
81
Request . prototype . end = function ( s ) {
84
82
if ( s !== undefined ) this . body . push ( s ) ;
83
+
84
+ var keys = objectKeys ( this . _headers ) ;
85
+ for ( var i = 0 ; i < keys . length ; i ++ ) {
86
+ var key = keys [ i ] ;
87
+ var value = this . _headers [ key ] ;
88
+ if ( isArray ( value ) ) {
89
+ for ( var j = 0 ; j < value . length ; j ++ ) {
90
+ this . xhr . setRequestHeader ( key , value [ j ] ) ;
91
+ }
92
+ }
93
+ else this . xhr . setRequestHeader ( key , value )
94
+ }
95
+
85
96
if ( this . body . length === 0 ) {
86
97
this . xhr . send ( '' ) ;
87
98
}
0 commit comments