2
0
mirror of https://github.com/tenrok/axios.git synced 2026-06-11 18:02:32 +03:00

Using response headers

This commit is contained in:
Matt Zabriskie
2014-08-27 03:12:29 -06:00
parent 514e281a1b
commit c0a9184739
7 changed files with 391 additions and 157 deletions
+83 -39
View File
File diff suppressed because one or more lines are too long
+83 -39
View File
File diff suppressed because one or more lines are too long
+83 -39
View File
File diff suppressed because one or more lines are too long
+83 -39
View File
File diff suppressed because one or more lines are too long
+2 -1
View File
@@ -3,6 +3,7 @@ var buildUrl = require('./buildUrl');
var defaults = require('./defaults');
var forEach = require('./forEach');
var merge = require('./merge');
var parseHeaders = require('./parseHeaders');
var transformData = require('./transformData');
var axios = module.exports = function axios(options) {
@@ -38,7 +39,7 @@ var axios = module.exports = function axios(options) {
options.transformResponse
),
status: request.status,
headers: headers,
headers: parseHeaders(request.getAllResponseHeaders()),
config: options
};
+38
View File
@@ -0,0 +1,38 @@
'use strict';
var forEach = require('./forEach');
function trim(str) {
return str.replace(/^\s*/, '').replace(/\s*$/, '');
}
/**
* Parse headers into an object
*
* ```
* Date: Wed, 27 Aug 2014 08:58:49 GMT
* Content-Type: application/json
* Connection: keep-alive
* Transfer-Encoding: chunked
* ```
*
* @param {String} headers Headers needing to be parsed
* @returns {Object} Headers parsed into an object
*/
module.exports = function parseHeaders(headers) {
var parsed = {}, key, val, i;
if (!headers) return parsed;
forEach(headers.split('\n'), function(line) {
i = line.indexOf(':');
key = trim(line.substr(0, i)).toLowerCase();
val = trim(line.substr(i + 1));
if (key) {
parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;
}
});
return parsed;
};
+19
View File
@@ -0,0 +1,19 @@
var parseHeaders = require('../../lib/parseHeaders');
module.exports = {
testParse: function (test) {
var date = new Date();
var parsed = parseHeaders(
'Date: ' + date.toISOString() + '\n' +
'Content-Type: application/json\n' +
'Connection: keep-alive\n' +
'Transfer-Encoding: chunked'
);
test.equals(parsed['date'], date.toISOString());
test.equals(parsed['content-type'], 'application/json');
test.equals(parsed['connection'], 'keep-alive');
test.equals(parsed['transfer-encoding'], 'chunked');
test.done();
}
};