http
module provides below methods to make a http request.
http.request(options[,
callback])
http.request(url[,
options][, callback])
https
module provides below methods to make a http request.
https.request(options[,
callback])
https.request(url[,
options][, callback])
http.request(options[, callback])
http.request(url[, options][, callback])
This
method hits the http url and callback function is called with the response from
the http url. This method returns an instance of http.ClientRequest. The
ClientRequest instance is a writable stream. If one needs to upload a file with
a POST request, then write to the ClientRequest object.
Below
table summarizes the arguments of ‘http.request’ method.
Argument
|
Type
|
Description
|
||||||||||||||||||||||||||||||||||||||||||||||||
url
|
string
or URL
|
Specifies
the http url.
|
||||||||||||||||||||||||||||||||||||||||||||||||
options
|
Object
|
Specifies
the options supported by request method.
Below
table summarizes the options.
|
||||||||||||||||||||||||||||||||||||||||||||||||
callback
|
Function
|
Callback
function is called with response object.
|
https.request(options[,
callback])
https.request(url[,
options][, callback])
This
methos is used to process https url. Below table summarizes the arguments of
this method.
Argument
|
Type
|
Description
|
||||||||
url
|
string
or URL
|
Specifies
the https url.
|
||||||||
options
|
Object
|
It
accept all the options supported by ‘http.request’ method. Below are the properties that has different
default values compared to ‘http.request’ method.
|
||||||||
callback
|
Function
|
Callback
function is called with response object.
|
Note
a. You must call request.end()
to notify the end of the request
b. If any error
encountered while processing the http request, an error event is emitted from
the request object.
Let’s
see an example, that hits the url ‘https://self-learning-java-tutorial.blogspot.com/2016/05/java-home-page.html’
and prints the response to the console.
Step 1: Import https module.
var
https = require('https');
Step 2: Form the options
object.
var
options = {
host :
'self-learning-java-tutorial.blogspot.com',
port : 443,
path : '/2016/05/java-home-page.html',
method : 'GET'
}
Step 3: Hit the url using
https.request method.
var
request = https.request(options, (response) => {
response.on('data', (content) => {
console.log(content);
})
});
Step 4: End the request.
request.end();
Find
the below working application.
HelloWorld.js
var https = require('https'); /* You can ignore specifying port and method, since 443 is the default port number and GET is the default https request.*/ var options = { host : 'self-learning-java-tutorial.blogspot.com', port : 443, path : '/2016/05/java-home-page.html', method : 'GET' } var request = https.request(options, (response) => { response.on('data', (content) => { console.log(content); }) }); request.end();
When
you ran above application, you can see below kind of output.
<Buffer 3c 21 44 4f 43 54 59 50 45 20 68 74 6d 6c 3e 0a 3c 68 74 6d 6c 20 63 6c 61 73 73 3d 27 76 32 27 20 64 69 72 3d 27 6c 74 72 27 20 78 6d 6c 6e 73 3d 27 ... > <Buffer 79 70 65 27 2f 3e 0a 3c 6d 65 74 61 20 63 6f 6e 74 65 6e 74 3d 27 62 6c 6f 67 67 65 72 27 20 6e 61 6d 65 3d 27 67 65 6e 65 72 61 74 6f 72 27 2f 3e 0a ... > <Buffer 74 6f 20 73 74 61 72 74 20 66 6f 72 20 61 20 62 65 67 69 6e 6e 65 72 2e 20 59 6f 75 20 63 61 6e 20 6c 65 61 72 6e 20 4f 4f 50 73 2c 20 74 68 72 2e 2e ... >
Surprised,
it is because, if you do not specfy the response encoding format, node.js
return response in binary format.
Specify
the endocing using ‘setEncoding’ method of response object.
response.setEncoding('UTF-8');
Adding error handler
/*
Adding error handler to this request */
request.on('error',
(err) => {
console.log(`Error occured while
sending the request: ${err}`);
})
Find
the below working application.
HelloWorld.js
var https = require('https'); /* You can ignore specifying port and method, since 443 is the default port number and GET is the default https request.*/ var options = { host: 'self-learning-java-tutorial.blogspot.com', port: 443, path: '/2016/05/java-home-page.html', method: 'GET' } var request = https.request(options, (response) => { /* Specify encoding*/ response.setEncoding('UTF-8'); response.on('data', (content) => { console.log(content); }) response.on('end', () => { console.log('Reached end of response'); }) }); request.end(); /* Adding error handler to this request */ request.on('error', (err) => { console.log(`Error occured while sending the request: ${err}`); })
No comments:
Post a Comment