Skip to content

Commit 197f057

Browse files
hendrikcechJames Halliday
authored andcommitted
add request.getHeader and request.removeHeader
1 parent 11bfdea commit 197f057

File tree

2 files changed

+35
-14
lines changed

2 files changed

+35
-14
lines changed

lib/request.js

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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) {
6158
inherits(Request, Stream);
6259

6360
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()]
7270
};
7371

7472
Request.prototype.write = function (s) {
@@ -82,6 +80,19 @@ Request.prototype.destroy = function (s) {
8280

8381
Request.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
}

readme.markdown

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,16 @@ req.setHeader(key, value)
6666

6767
Set an http header.
6868

69+
req.getHeader(key)
70+
-------------------------
71+
72+
Get an http header.
73+
74+
req.removeHeader(key)
75+
-------------------------
76+
77+
Remove an http header.
78+
6979
req.write(data)
7080
---------------
7181

0 commit comments

Comments
 (0)