...

Source file src/net/http/httputil/httputil.go

Documentation: net/http/httputil

		 1  // Copyright 2014 The Go Authors. All rights reserved.
		 2  // Use of this source code is governed by a BSD-style
		 3  // license that can be found in the LICENSE file.
		 4  
		 5  // Package httputil provides HTTP utility functions, complementing the
		 6  // more common ones in the net/http package.
		 7  package httputil
		 8  
		 9  import (
		10  	"io"
		11  	"net/http/internal"
		12  )
		13  
		14  // NewChunkedReader returns a new chunkedReader that translates the data read from r
		15  // out of HTTP "chunked" format before returning it.
		16  // The chunkedReader returns io.EOF when the final 0-length chunk is read.
		17  //
		18  // NewChunkedReader is not needed by normal applications. The http package
		19  // automatically decodes chunking when reading response bodies.
		20  func NewChunkedReader(r io.Reader) io.Reader {
		21  	return internal.NewChunkedReader(r)
		22  }
		23  
		24  // NewChunkedWriter returns a new chunkedWriter that translates writes into HTTP
		25  // "chunked" format before writing them to w. Closing the returned chunkedWriter
		26  // sends the final 0-length chunk that marks the end of the stream but does
		27  // not send the final CRLF that appears after trailers; trailers and the last
		28  // CRLF must be written separately.
		29  //
		30  // NewChunkedWriter is not needed by normal applications. The http
		31  // package adds chunking automatically if handlers don't set a
		32  // Content-Length header. Using NewChunkedWriter inside a handler
		33  // would result in double chunking or chunking with a Content-Length
		34  // length, both of which are wrong.
		35  func NewChunkedWriter(w io.Writer) io.WriteCloser {
		36  	return internal.NewChunkedWriter(w)
		37  }
		38  
		39  // ErrLineTooLong is returned when reading malformed chunked data
		40  // with lines that are too long.
		41  var ErrLineTooLong = internal.ErrLineTooLong
		42  

View as plain text