mirror of https://github.com/lukechilds/got.git
Sindre Sorhus
11 years ago
commit
f9436f5e58
9 changed files with 176 additions and 0 deletions
@ -0,0 +1,16 @@ |
|||||
|
# editorconfig.org |
||||
|
root = true |
||||
|
|
||||
|
[*] |
||||
|
indent_style = tab |
||||
|
end_of_line = lf |
||||
|
charset = utf-8 |
||||
|
trim_trailing_whitespace = true |
||||
|
insert_final_newline = true |
||||
|
|
||||
|
[package.json] |
||||
|
indent_style = space |
||||
|
indent_size = 2 |
||||
|
|
||||
|
[*.md] |
||||
|
trim_trailing_whitespace = false |
@ -0,0 +1 @@ |
|||||
|
* text eol=lf |
@ -0,0 +1 @@ |
|||||
|
node_modules |
@ -0,0 +1,19 @@ |
|||||
|
{ |
||||
|
"node": true, |
||||
|
"esnext": true, |
||||
|
"bitwise": true, |
||||
|
"camelcase": true, |
||||
|
"curly": true, |
||||
|
"eqeqeq": true, |
||||
|
"immed": true, |
||||
|
"indent": 4, |
||||
|
"newcap": true, |
||||
|
"noarg": true, |
||||
|
"quotmark": "single", |
||||
|
"regexp": true, |
||||
|
"undef": true, |
||||
|
"unused": true, |
||||
|
"strict": true, |
||||
|
"trailing": true, |
||||
|
"smarttabs": true |
||||
|
} |
@ -0,0 +1,3 @@ |
|||||
|
language: node_js |
||||
|
node_js: |
||||
|
- '0.10' |
@ -0,0 +1,44 @@ |
|||||
|
'use strict'; |
||||
|
var urlLib = require('url'); |
||||
|
var http = require('http'); |
||||
|
var https = require('https'); |
||||
|
|
||||
|
module.exports = function (url, cb) { |
||||
|
var redirectCount = 0; |
||||
|
|
||||
|
var get = function (url, cb) { |
||||
|
var fn = urlLib.parse(url).protocol === 'https:' ? https : http; |
||||
|
|
||||
|
fn.get(url, function (res) { |
||||
|
var ret = ''; |
||||
|
|
||||
|
// redirect
|
||||
|
if (res.statusCode < 400 && res.statusCode >= 300 && res.headers.location) { |
||||
|
if (++redirectCount > 10) { |
||||
|
cb(new Error('Redirected 10 times. Aborting.')); |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
get(urlLib.resolve(url, res.headers.location), cb); |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
if (res.statusCode !== 200) { |
||||
|
cb(res.statusCode); |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
res.setEncoding('utf8'); |
||||
|
|
||||
|
res.on('data', function (data) { |
||||
|
ret += data; |
||||
|
}); |
||||
|
|
||||
|
res.on('end', function () { |
||||
|
cb(null, ret); |
||||
|
}); |
||||
|
}).on('error', cb); |
||||
|
}; |
||||
|
|
||||
|
get(url, cb); |
||||
|
}; |
@ -0,0 +1,36 @@ |
|||||
|
{ |
||||
|
"name": "got", |
||||
|
"version": "0.0.0", |
||||
|
"description": "Simplified HTTP/HTTPS GET requests", |
||||
|
"license": "MIT", |
||||
|
"repository": "sindresorhus/got", |
||||
|
"author": { |
||||
|
"name": "Sindre Sorhus", |
||||
|
"email": "sindresorhus@gmail.com", |
||||
|
"url": "http://sindresorhus.com" |
||||
|
}, |
||||
|
"engines": { |
||||
|
"node": ">=0.10.0" |
||||
|
}, |
||||
|
"scripts": { |
||||
|
"test": "mocha" |
||||
|
}, |
||||
|
"files": [ |
||||
|
"index.js" |
||||
|
], |
||||
|
"keywords": [ |
||||
|
"http", |
||||
|
"https", |
||||
|
"get", |
||||
|
"got", |
||||
|
"url", |
||||
|
"uri", |
||||
|
"request", |
||||
|
"util", |
||||
|
"utility", |
||||
|
"simple" |
||||
|
], |
||||
|
"devDependencies": { |
||||
|
"mocha": "*" |
||||
|
} |
||||
|
} |
@ -0,0 +1,29 @@ |
|||||
|
# got [![Build Status](https://travis-ci.org/sindresorhus/got.svg?branch=master)](https://travis-ci.org/sindresorhus/got) |
||||
|
|
||||
|
> Simplified HTTP/HTTPS GET requests |
||||
|
|
||||
|
Follows redirects. Not intended to be feature-rich. Use [request](https://github.com/mikeal/request) if you need something more. |
||||
|
|
||||
|
|
||||
|
## Install |
||||
|
|
||||
|
```bash |
||||
|
$ npm install --save got |
||||
|
``` |
||||
|
|
||||
|
|
||||
|
## Usage |
||||
|
|
||||
|
```js |
||||
|
var got = require('got'); |
||||
|
|
||||
|
got('http://todomvc.com', function (err, data) { |
||||
|
console.log(data); |
||||
|
//=> <!doctype html> ... |
||||
|
}); |
||||
|
``` |
||||
|
|
||||
|
|
||||
|
## License |
||||
|
|
||||
|
[MIT](http://opensource.org/licenses/MIT) © [Sindre Sorhus](http://sindresorhus.com) |
@ -0,0 +1,27 @@ |
|||||
|
'use strict'; |
||||
|
var assert = require('assert'); |
||||
|
var got = require('./index'); |
||||
|
|
||||
|
it('should request', function (done) { |
||||
|
got('http://google.com', function (err, data) { |
||||
|
if (err) { |
||||
|
console.error(err); |
||||
|
assert(false); |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
assert(/google/.test(data)); |
||||
|
done(); |
||||
|
}); |
||||
|
|
||||
|
got('https://google.com', function (err, data) { |
||||
|
if (err) { |
||||
|
console.error(err); |
||||
|
assert(false); |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
assert(/google/.test(data)); |
||||
|
done(); |
||||
|
}); |
||||
|
}); |
Loading…
Reference in new issue