@@ -23,19 +23,16 @@ var Request = module.exports = function (xhr, params) {
2323 self . uri ,
2424 true
2525 ) ;
26+
27+ self . _headers = { } ;
2628
2729 if ( params . headers ) {
2830 var keys = objectKeys ( params . headers ) ;
2931 for ( var i = 0 ; i < keys . length ; i ++ ) {
3032 var key = keys [ i ] ;
3133 if ( ! self . isSafeRequestHeader ( key ) ) continue ;
3234 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 ) ;
3936 }
4037 }
4138
@@ -61,14 +58,15 @@ var Request = module.exports = function (xhr, params) {
6158inherits ( Request , Stream ) ;
6259
6360Request . 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 ( ) ]
7270} ;
7371
7472Request . prototype . write = function ( s ) {
@@ -82,6 +80,19 @@ Request.prototype.destroy = function (s) {
8280
8381Request . prototype . end = function ( s ) {
8482 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+
8596 if ( this . body . length === 0 ) {
8697 this . xhr . send ( '' ) ;
8798 }
0 commit comments