httpc

GitHub release Discord chat CI

Bindings to Erlang’s built in HTTP client, httpc.

Note: HTTPC does not verify TLS connections by default. Your connection may not be secure with this library. If you’re looking for a more full featured Erlang HTTP client you should take a look at hackney.

import gleam/httpc
import gleam/http.{Get}
import gleeunit/should

pub fn main() {
  // Prepare a HTTP request record
  let req = http.default_req()
    |> http.set_method(Get)
    |> http.set_host("test-api.service.hmrc.gov.uk")
    |> http.set_path("/hello/world")
    |> http.prepend_req_header("accept", "application/vnd.hmrc.1.0+json")

  // Send the HTTP request to the server
  try resp = httpc.send(req)

  // We get a response record back
  resp.status
  |> should.equal(200)

  resp
  |> http.get_resp_header("content-type")
  |> should.equal(Ok("application/json"))

  resp.body
  |> should.equal("{\"message\":\"Hello World\"}")

  Ok(resp)
}

Installation

gleam add gleam_httpc