...

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

     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