# http-message
> Parse and create HTTP messages
```elixir
message = %HTTPMessage{
method: :POST,
url: "/foo/bar",
body: "Hello, World!"
}
raw = HTTPMessage.create(message)
# Send it, or whatever.
```
## Installation
Add to your Mixfile's dependencies:
```elixir
{:http_message, "~> 0.1.0"}
```
Then do
## Usage
### `HTTPMessage`
The module is a struct used as a middleman for parsing and creating:
```elixir
%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.
```elixir
foo = %HTTPMessage{ method: :GET, url: "/foo" }
# Create string:
raw = HTTPMessage.create(foo)
```
### `HTTPMessage.parse(source)`
Parse string into `HTTPMessage` struct
```elixir
message = HTTPMessage.parse("""
GET /foo HTTP/1.1
Content-Type: text/html
<p>Hello, world!</p>
""")
```
## License
MIT © [Jamen Marz](https://git.io/jamen)