gpt4 book ai didi

go - multipart.NewReader 后无输出

转载 作者:数据小太阳 更新时间:2023-10-29 03:10:17 26 4
gpt4 key购买 nike

这可能非常简单,但到目前为止,谷歌搜索还没有找到答案。几乎 100% 的代码来自此处的文档: https://golang.org/pkg/mime/multipart/#example_NewReader

问题是在 for 循环之后我无法打印任何内容,我尝试关闭任何需要关闭的内容(参见注释代码)但无法弄清楚那是什么。

  package main

import (
"fmt"
"io"
"io/ioutil"
"log"
"mime"
"mime/multipart"
"net/mail"
"strings"
)

func main() {
msg := &mail.Message{
Header: map[string][]string{
"Content-Type": {"multipart/mixed; boundary=foo"},
},
Body: strings.NewReader(
"--foo\r\nFoo: one\r\n\r\nA section\r\n" +
"--foo\r\nFoo: two\r\n\r\nAnd another\r\n" +
"--foo--\r\n"),
}
mediaType, params, err := mime.ParseMediaType(msg.Header.Get("Content-Type"))
if err != nil {
log.Fatal(err)
}
if strings.HasPrefix(mediaType, "multipart/") {
mr := multipart.NewReader(msg.Body, params["boundary"])
for {
p, err := mr.NextPart()
if err == io.EOF {
return
}
if err != nil {
log.Fatal(err)
}
slurp, err := ioutil.ReadAll(p)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Part %q: %q\n", p.Header.Get("Foo"), slurp)
// p.Close()

}
// mr.Close()
// mr.Interface().(io.Closer).Close()
// ioutil.NopCloser(mr)

}

// This does not print
fmt.Printf("Test: %s\n", "asdfasdf")
fmt.Println("Test")

}

我错过了什么?我将如何解决追踪丢失的问题?

最佳答案

你目前没有办法在不返回的情况下退出 for,这也会让你退出函数。看起来你想改变

 if err == io.EOF {
return
}

 if err == io.EOF {
break
}

关于go - multipart.NewReader 后无输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53215506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com