# HttpClientRequest class

HTTP request for a client connection.

To set up a request, set the headers using the headers property provided in this class and write the data to the body of the request. HttpClientRequest is an IOSink. Use the methods from IOSink, such as writeCharCode(), to write the body of the HTTP request. When one of the IOSink methods is used for the first time, the request header is sent. Calling any methods that change the header after it is sent throws an exception.

When writing string data through the IOSink the encoding used is determined from the "charset" parameter of the "Content-Type" header.

    HttpClientRequest request = ...
    request.headers.contentType
        = new ContentType("application", "json", charset: "utf-8");
    request.write(...);  // Strings written will be UTF-8 encoded.

If no charset is provided the default of ISO-8859-1 (Latin 1) is be used.

    HttpClientRequest request = ...
    request.headers.add(HttpHeaders.contentTypeHeader, "text/plain");
    request.write(...);  // Strings written will be ISO-8859-1 encoded.

An exception is thrown if you use an unsupported encoding and the `write()` method being used takes a string parameter.

Implements
  - IOSink

## Constructors

HttpClientRequest()

## Properties

bufferOutput ↔ bool
  Gets or sets if the `HttpClientRequest` should buffer output. [...]
  read / write
connectionInfo → HttpConnectionInfo
  Gets information about the client connection. [...]
  read-only
contentLength ↔ int
  Gets and sets the content length of the request. [...]
  read / write
cookies → List<Cookie>
  Cookies to present to the server (in the 'cookie' header).
  read-only
done → Future<HttpClientResponse>
  A HttpClientResponse future that will complete once the response is available. [...]
  read-only
followRedirects ↔ bool
  Set this property to `true` if this request should automatically follow redirects. The default is `true`. [...]
  read / write
headers → HttpHeaders
  Returns the client request headers. [...]
  read-only
maxRedirects ↔ int
  Set this property to the maximum number of redirects to follow when `followRedirects` is `true`. If this number is exceeded an error event will be added with a `RedirectException`. [...]
  read / write
method → String
  The method of the request.
  read-only
persistentConnection ↔ bool
  Gets and sets the requested persistent connection state. [...]
  read / write
uri → Uri
  The uri of the request.
  read-only
encoding ↔ Encoding
  The `Encoding` used when writing strings. Depending on the underlying consumer this property might be mutable.
  read / write, inherited
hashCode → int
  The hash code for this object. [...]
  read-only, inherited
runtimeType → Type
  A representation of the runtime type of the object.
  read-only, inherited

## Methods

close() → Future<HttpClientResponse>
  Close the request for input. Returns the value of done.
add(List<int> data) → void
  Adds byte `data` to the target consumer, ignoring encoding. [...]
  inherited
addError(Object error, [ StackTrace stackTrace ]) → void
  Passes the error to the target consumer as an error event. [...]
  inherited
addStream(Stream<List<int>> stream) → Future
  Adds all elements of the given `stream` to `this`. [...]
  inherited
flush() → Future
  Returns a Future that completes once all buffered data is accepted by the underlying StreamConsumer. [...]
  inherited
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a non-existent method or property is accessed. [...]
  inherited
toString() → String
  Returns a string representation of this object.
  inherited
write(Object obj) → void
  Converts `obj` to a String by invoking Object.toString and adds the encoding of the result to the target consumer. [...]
  inherited
writeAll(Iterable objects, [ String separator = "" ]) → void
  Iterates over the given `objects` and writes them in sequence. [...]
  inherited
writeCharCode(int charCode) → void
  Writes the character of `charCode`. [...]
  inherited
writeln([Object obj = "" ]) → void
  Converts `obj` to a String by invoking Object.toString and writes the result to `this`, followed by a newline. [...]
  inherited

## Operators

operator ==(dynamic other) → bool
  The equality operator. [...]
  inherited