Feat: add query params

This commit is contained in:
2025-11-10 11:07:36 +08:00
parent 9a39bcda40
commit dbd2ed6469
16 changed files with 293 additions and 37 deletions

View File

@@ -5,41 +5,68 @@ import (
"net"
)
func Do(addr, route string, method Method, body []byte) ([]byte, error) {
func Do(
addr, route string,
method Method,
params map[string]string,
body []byte,
) (*Response, error) {
conn, err := net.Dial("tcp", addr)
if err != nil {
return []byte{}, err
return nil, err
}
defer conn.Close()
header := RequestHeader{
reqHeader := RequestHeader{
Method: method,
Route: route,
Params: params,
}
rawHeader, err := json.Marshal(header)
rawHeader, err := json.Marshal(reqHeader)
if err != nil {
return []byte{}, err
return nil, err
}
if err := sendFrame(conn, rawHeader); err != nil {
return []byte{}, err
return nil, err
}
if err := sendFrame(conn, body); err != nil {
return []byte{}, err
return nil, err
}
b, err := readFrame(conn)
rawHeader, err = readFrame(conn)
if err != nil {
return []byte{}, err
return nil, err
}
return b, nil
var resHeader ResponseHeader
if err := json.Unmarshal(rawHeader, &resHeader); err != nil {
return nil, err
}
body, err = readFrame(conn)
if err != nil {
return nil, err
}
return &Response{
StatusCode: resHeader.StatusCode,
Body: body,
RemoteAddr: conn.RemoteAddr().String(),
}, nil
}
func Get(addr, route string) ([]byte, error) {
return Do(addr, route, MethodGET, []byte{})
func Get(
addr, route string,
params map[string]string,
) (*Response, error) {
return Do(addr, route, MethodGET, params, nil)
}
func Post(addr, route string, b []byte) ([]byte, error) {
return Do(addr, route, MethodPOST, b)
func Post(
addr, route string,
params map[string]string,
b []byte,
) (*Response, error) {
return Do(addr, route, MethodPOST, params, b)
}