http-client
An opinionated, isomorphic HTTP client.
Usage
Import httpClient
import https from 'https';
import {httpClient} from '@digitalbazaar/http-client';
Import and initialize a custom Bearer Token client
import {httpClient} from '@digitalbazaar/http-client';
const httpsAgent = new https.Agent({rejectUnauthorized: false});
const accessToken = '12345';
const headers = {Authorization: `Bearer ${accessToken}`};
const client = httpClient.extend({headers, httpsAgent});
GET a JSON response in the browser
try {
result = await httpClient.get('http://httpbin.org/json');
return result.data;
} catch(e) {
const {data, status} = e;
throw e;
}
GET a JSON response in Node with a HTTP Agent
import https from 'https';
const agent = new https.Agent({rejectUnauthorized: false});
try {
result = await httpClient.get('http://httpbin.org/json', {agent});
return result.data;
} catch(e) {
const {data, status} = e;
throw e;
}
const headers = {Accept: 'text/html'};
try {
result = await httpClient.get('http://httpbin.org/json', {headers});
return result.response.text();
} catch(e) {
const {response, status} = e;
throw e;
}
POST a JSON payload
try {
result = await httpClient.post('http://httpbin.org/json', {
json: {some: 'data'}
});
return result.data;
} catch(e) {
const {data, status} = e;
throw e;
}
POST a JSON payload in Node with a HTTP Agent
import https from 'https';
const agent = new https.Agent({rejectUnauthorized: false});
try {
result = await httpClient.post('http://httpbin.org/json', {
agent,
json: {some: 'data'}
});
return result.data;
} catch(e) {
const {data, status} = e;
throw e;
}