http message

Parse and create HTTP messages

message = %HTTPMessage{
  method: :POST,
  url: "/foo/bar",
  body: "Hello, World!"
}

raw = HTTPMessage.create(message)
# Send it, or whatever.

Also see jamen/http for higher-level functions for HTTP.

Installation

Add to your Mixfile's dependencies:

{:http_message, "~> 0.1.0"}

Then do

Usage

HTTPMessage

The module is a struct used as a middleman for parsing and creating:

%HTTPMessage{
  # Message header:
  method: :PUT,
  url: "/foo",
  version: "HTTP/2.0",
  fields: [
    {"Content-Type", "application/json"}
  ],
  # Message body:
  body: "{ \"foo\": 123 }"
}

HTTPMessage.create(message)

Create string from HTTPMessage struct.

foo = %HTTPMessage{ method: :GET, url: "/foo" }

# Create string:
raw = HTTPMessage.create(foo)

HTTPMessage.parse(source)

Parse string into HTTPMessage struct

message = HTTPMessage.parse("""
GET /foo HTTP/1.1
Content-Type: text/html


<p>Hello, world!</p>
""")

License

MIT © Jamen Marz