UNPKG

@digitalbazaar/http-client

Version:
113 lines (98 loc) 2.96 kB
# http-client An opinionated, isomorphic HTTP client for Node.js, browsers, and React Native. ### Usage #### Import httpClient (Node.js, browsers, or React Native) ```js import {httpClient} from '@digitalbazaar/http-client'; ``` #### Import and initialize a custom Bearer Token client ```js import {httpClient} from '@digitalbazaar/http-client'; const accessToken = '12345'; const headers = {Authorization: `Bearer ${accessToken}`}; const client = httpClient.extend({headers}); // subsequent http calls will include an 'Authorization: Bearer 12345' header ``` #### Disable self-signed TLS/SSL cert checks for development purposes only ```js import {Agent} from 'https'; import {httpClient} from '@digitalbazaar/http-client'; const agent = new https.Agent({rejectUnauthorized: false}); const client = httpClient.extend({headers, agent}); // subsequent http calls will use the provided https Agent ``` #### GET a JSON response in the browser ```js try { const response = await httpClient.get('http://httpbin.org/json'); return response.data; } catch(e) { // status is HTTP status code // data is JSON error from the server const {data, status} = e; throw e; } ``` #### GET a JSON response in Node with an HTTP Agent ```js import https from 'https'; // use an agent to avoid self-signed certificate errors const agent = new https.Agent({rejectUnauthorized: false}); try { const response = await httpClient.get('http://httpbin.org/json', {agent}); return response.data; } catch(e) { // status is HTTP status code // data is JSON error from the server if available const {data, status} = e; throw e; } ``` #### GET HTML by overriding default headers ```js const headers = {Accept: 'text/html'}; try { const response = await httpClient.get('http://httpbin.org/html', {headers}); // see: https://developer.mozilla.org/en-US/docs/Web/API/Response#methods return response.text(); } catch(e) { // status is HTTP status code // any message from the server can be parsed from the response if present const {response, status} = e; throw e; } ``` #### POST a JSON payload ```js try { const response = await httpClient.post('http://httpbin.org/json', { // `json` is the payload or body of the POST request json: {some: 'data'} }); return response.data; } catch(e) { // status is HTTP status code // data is JSON error from the server const {data, status} = e; throw e; } ``` #### POST a JSON payload in Node with an HTTP Agent ```js import https from 'https'; // use an agent to avoid self-signed certificate errors const agent = new https.Agent({rejectUnauthorized: false}); try { const response = await httpClient.post('http://httpbin.org/json', { agent, // `json` is the payload or body of the POST request json: {some: 'data'} }); return response.data; } catch(e) { // status is HTTP status code // data is JSON error from the server const {data, status} = e; throw e; } ```