/http2-request

super smol http2 request 📦

Primary LanguageJavaScriptOtherNOASSERTION

http2-request

npm version build status downloads js-standard-style

Super smol HTTP/2 request library 📦. Optimized for JSON APIs.

Usage

var request = require('http2-request')
var fs = require('fs')

var opts = {
  url: 'https://localhost:8001',
  connectOpts: {
    ca: fs.readFileSync('~/http2-request/cert.pem')
  },
  clientOpts: {},
  headers: {
    ':path': '/'
  }
}

request(opts, function (err, headers, body) {
  if (err) throw err
  if (!headers.isOk()) throw new Error(`statusCode is ${headers.statusCode}`)
  console.log('headers', headers)
  console.log('body', body)
})

API

request(opts, cb)

Create a new instance of http2-request. Takes a few options to connect to an HTTP/2 client and create and HTTP/2 session:

  • opts.headers: headers object to pass in the request.
  • opts.json: Boolean, defaults to true. Returns either a JSON object or a string when false.
  • opts.url: A URL to send a request to. http2-request will create a new URL object to get the origin
  • opts.clientOpts: HTTP/2 session request opts. When none are passed, will use defaults.
  • opts.connectOpts: HTTP/2 connect options. When none are passed, will use defaults. If you're developing locally, pass in { rejectUnauthorized: false } to avoid rejections from the server, otherwise pass in a cert under the ca flag.

response

Request has a signature of (err, headers, body):

  • err: err from either a connection or a request.
  • headers: HTTP/2 errors object returned from the response.
  • body: Response body. Will return a string if opts.json is false, otherwise a JSON object.

headers.isOK()

A convenience method to see if the response comes back <=299 for easier error checking. Returns a boolean.

headers.statusCode

A convenience method from HTTP/1.1 to read off the status code. You can also do so by headers[:status].

Install

npm install http2-request

License

Apache-2.0