doc: improved example for http.get

PR-URL: https://github.com/nodejs/node/pull/9065
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
This commit is contained in:
marzelin 2016-10-12 21:57:04 +02:00 committed by James M Snell
parent 8a0b7ffac6
commit cb87748023

View File

@ -1437,16 +1437,47 @@ added: v0.3.6
* Returns: {http.ClientRequest} * Returns: {http.ClientRequest}
Since most requests are GET requests without bodies, Node.js provides this Since most requests are GET requests without bodies, Node.js provides this
convenience method. The only difference between this method and [`http.request()`][] convenience method. The only difference between this method and
is that it sets the method to GET and calls `req.end()` automatically. [`http.request()`][] is that it sets the method to GET and calls `req.end()`
automatically. Note that response data must be consumed in the callback
for reasons stated in [`http.ClientRequest`][] section.
Example: The `callback` is invoked with a single argument that is an instance of
[`http.IncomingMessage`][]
JSON Fetching Example:
```js ```js
http.get('http://www.google.com/index.html', (res) => { http.get('http://nodejs.org/dist/index.json', (res) => {
console.log(`Got response: ${res.statusCode}`); const statusCode = res.statusCode;
// consume response body const contentType = res.headers['content-type'];
res.resume();
let error;
if (statusCode !== 200) {
error = new Error(`Request Failed.\n` +
`Status Code: ${statusCode}`);
} else if (!/^application\/json/.test(contentType)) {
error = new Error(`Invalid content-type.\n` +
`Expected application/json but received ${contentType}`);
}
if (error) {
console.log(error.message);
// consume response data to free up memory
res.resume();
return;
}
res.setEncoding('utf8');
let rawData = '';
res.on('data', (chunk) => rawData += chunk);
res.on('end', () => {
try {
let parsedData = JSON.parse(rawData);
console.log(parsedData);
} catch (e) {
console.log(e.message);
}
});
}).on('error', (e) => { }).on('error', (e) => {
console.log(`Got error: ${e.message}`); console.log(`Got error: ${e.message}`);
}); });