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)
}
Go 使用 io.Pipe()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 读取文件,同时计算多组 Hash 值,包括:md5、sha1、sha256、HMACSHA256、HMACSHA5...
- 管道(pipe) 管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功...
- scp -r root@192.168.5.41:/home/heweiwei/drmsd_python3 ./ ...