當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


GO NewReader用法及代碼示例

GO語言"mime/multipart"包中"NewReader"函數的用法及代碼示例。

用法:

func NewReader(r io.Reader, boundary string) *Reader

NewReader 使用給定的 MIME 邊界從 r 創建一個新的多部分閱讀器。

邊界通常從消息的"Content-Type" 標頭的"boundary" 參數中獲得。使用 mime ParseMediaType 來解析此類標頭。

例子:

package main

import (
	"fmt"
	"io"
	"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 := io.ReadAll(p)
			if err != nil {
				log.Fatal(err)
			}
			fmt.Printf("Part %q: %q\n", p.Header.Get("Foo"), slurp)
		}
	}

}

輸出:

Part "one": "A section"
Part "two": "And another"

相關用法


注:本文由純淨天空篩選整理自golang.google.cn大神的英文原創作品 NewReader。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。