Send Request
Lightweight HTTP client for Node.
Installation
$ npm install send-request
Usage
Send HTTP GET request:
const sendRequest = ; async { const response = await ; console; console; console; // Response as a string // If response's content type is a JSON, you get the parsed object. console;};
Recipes
Handling Error
const sendRequest = ; async { try const response = await ; catcherror console; // If it's an HTTP error, it will have response property. if errorresponse console; // 400 console; console; console; };
Send HTTP POST Request with Body
If you don't set the content-type
and content-length
headers, it will be automatically added. The content-type
will be set to application/x-www-form-urlencoded
.
const sendRequest = ; async { const response = await ; console;};
Send HTTP Request with JSON Body
If you don't set the content-type
and content-length
headers, it will be automatically added. The content-type
will be set to application/json
.
const sendRequest = ; async { const response = await ; console;};
Sending File with FormData
You pass the FormData
instance as a body
. If you don't set the content-type
and content-length
headers, it will be automatically added. The content-type
will be set to multipart/form-data
. The json
option won't have any effect.
const fs = ;const sendRequest = ;const FormData = ; async { const file = fs; const form = ; form; form; const response = await ; console;};
API
Parameters
url
(String
): The URL to send the HTTP request to.method
(optionalString
): The HTTP method to use, default toGET
.headers
(optionalObject
): The request headers to send.auth.username
(optionalString
): The username for HTTP basic auth.auth.password
(optionalString
): The password for HTTP basic auth.body
(optionalObject|FormData
): The request body to send. It can be a plain JavaScript object or an instance ofFormData
.json
(optional Boolean): Set totrue
if you want to send the request body withapplication/json
content type. Default tofalse
, which means that the request body will be sent asapplication/x-www-form-urlencoded
. Note that you can still override the content type using theheaders
option.encoding
(optionalString
|Null
): The encoding to decode the incoming response. If set tonull
, the response's body will be aBuffer
instance.
Returns
It returns a Promise
which when resolved contains a response object. Here's an example of a reponse object:
statusCode: 200 statusMessage: "OK" headers: "content-type": "application/json" body: '{"foo": "bar"}' json: foo: "bar"
statusCode
(Number): The HTTP status code.statusMessage
(Number): The HTTP status message (reason phrase).headers
(Object): The response's headers.body
(String): The response's body.json
(Object): The parsed JSON body. It only exist if the response's content type isapplication/json
.