目录

前言

queryheaderPOST

POST 请求

HTTPPOSTjsonbodyjsonRestFul APIHTTPPOSTjsonbody
import (
    "bytes"
    "context"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

type User struct {
    Username string `json:"username"`
    Password string `json:"password"`
}

func main() {
    client := http.Client{}

    user := User{
        Username: "123456",
        Password: "12346",
    }
    dataByte, err := json.Marshal(user)
    if err != nil {
        fmt.Println(err)
    }
    bodyReader := bytes.NewReader(dataByte)

    request, err := http.NewRequestWithContext(context.Background(), http.MethodPost, "http://localhost:8080/user", bodyReader)
    if err != nil {
        return
    }
    request.Header.Set("Content-Type", "application/json")
    resp, err := client.Do(request)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println("statusCode: ", resp.StatusCode)
    body, err := io.ReadAll(resp.Body)
    if err != nil {
        return
    }
    defer resp.Body.Close()
    fmt.Println(string(body))
}
Userjson.Marshaluser[]bytebytes.NewReader[]byteReaderhttp.NewRequestWithContextbodyReaderuserReaderjsonbodyContent-Typeapplication/json
application/x-www-form-urlencodedbody
values := url.Values{}
values.Set("username", "1234")
values.Set("password", "1234")
bodyReader := strings.NewReader(values.Encode())

小结

POSTjsonapplication/x-www-form-urlencodedbodyHTTPquerybodyGETPOSTPUTDELETENewRequestWithContexthttp.MethodPuthttp.MethodDelete
您可能感兴趣的文章: