以下の例のようにhttp.Responseを複数の用途で使用したいです。
その際にresp.Bodyがクローズされてしまい、後続の処理では空と扱われてしまいます。
Goではこのような処理を行う場合、どのようにするのがベストなのでしょうか。
go
1// HTTP GET 2resp, err := http.Get("http://example.com") 3 4// FILE WRITE 1 5file1, err := os.Create("foo.html") 6io.Copy(file1, resp.Body) // resp.Bodyが書き込まれる 7file1.Close() 8 9// FILE WRITE 2 10file2, err := os.Create("bar.html") 11io.Copy(file2, resp.Body) // resp.BodyはCloseされているので何も書き込まれない 12file2.Close() 13 14// goquery 15doc, err := goquery.NewDocumentFromReader(resp.Body) // resp.Bodyはクローズされているので空のHTMLとしてパースされる 16doc.Find("hmtl").Each(func(i int, s *goquery.Selection) { 17})
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/12/15 12:41