Go 使用 io.Pipe()

package main

import (
    "encoding/json"
    "io"
    "log"
    "net/http"
)

type Person struct {
    Name string
    Age  int
    Addr string
}

func main() {
    person := Person{
        Name: "Tom",
        Age:  26,
        Addr: "Beijing",
    }
    pr, pw := io.Pipe()

    go func() {
        defer func() {
            _ = pw.Close()
        }()

        if err := json.NewEncoder(pw).Encode(person); err != nil {
            log.Fatalf("failed to marshal data:%s", err.Error())
        }
    }()

    resp, err := http.Post("https://httpbin.org/post", "application/json;chartset=utf8", pr)
    if err != nil {
        log.Fatalf("failed to post data:%s", err.Error())
        return
    }
    defer func() {
        _ = resp.Body.Close()
    }()
    data, err := io.ReadAll(resp.Body)
    if err != nil {
        log.Fatalf("failed to read data from resp body:%s", err.Error())
        return
    }
    log.Printf("resp data:%s", data)
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容