Browse Source

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>
v7.x
marzelin 8 years ago
committed by James M Snell
parent
commit
95d45d750a
  1. 45
      doc/api/http.md

45
doc/api/http.md

@ -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}`);
}); });

Loading…
Cancel
Save