// Copyright (c) 2022 Nadeen Udantha . All rights reserved. package boihttp_test import ( "bufio" "fmt" "io" "io/ioutil" "net" "testing" "time" "git.nadeen.lk/boihttp" ) func TestMessage(t *testing.T) { c, err := net.Dial("tcp", httpbin_addr) throw(err) defer c.Close() r, w := bufio.NewReaderSize(c, 1024), bufio.NewWriterSize(c, 1024) err = (&boihttp.Message{ Method: "GET", Path: "/anything", Version: boihttp.VersionHTTP1_1, Headers: boihttp.Headers{ "Host": []string{"httpbin.org"}, "Connection": []string{"close"}, "Boi": []string{"whatsupdoc?"}, }, }).WriteRequest(w) throw(err) throw(w.Flush()) var res boihttp.Message throw(res.ReadResponse(r)) print(&res, r) } func print(res *boihttp.Message, r io.Reader) { fmt.Printf("status: %d %s\n", res.StatusCode, res.Status) fmt.Println("headers:") for k, vs := range res.Headers { for _, v := range vs { fmt.Printf("\t\"%s\": \"%s\"\n", k, v) } } d, err := ioutil.ReadAll(r) throw(err) fmt.Printf("body: \"%s\"\n", string(d)) time.Sleep(time.Second) } func throw(err error) { if err != nil { panic(err) } }