# FetchOptions
Date: 2012-02-24

## com.google.appengine.api.urlfetch
Class FetchOptions

    java.lang.Object
      com.google.appengine.api.urlfetch.FetchOptions

All Implemented Interfaces:
  java.io.Serializable

    public final class FetchOptions

extends java.lang.Object
implements java.io.Serializable

Allows users to customize the behavior of `URLFetchService` operations.

If `allowTruncate` is called, `URLFetchService` will truncate large responses and return them without error.

If (@link #disallowTruncate} is called, `ResponseTooLargeException` will be thrown if the response is too large.

If `followRedirects` is called the `URLFetchService` operation will follow redirects.

If `doNotFollowRedirects()` is called the `URLFetchService` operation will not follow redirects.

If `validateCertificate()` is called the `URLFetchService` operation will, if using an HTTPS connection, validate the server's SSL certificate using the same CA-based algorithm as a typical browser. HTTP connections are unaffected by this option.

If `doNotValidateCertificate()` is called the `URLFetchService` will not validate the server's SSL certificate in any fashion.

If neither `validateCertificate()` nor `#doNotValidateCertificates()` is called, then the underlying `URLFetchService` implementation determines what type of validation is performed.

Notes on usage:
The recommended way to instantiate a `FetchOptions` object is to statically import `FetchOptions.Builder`.* and invoke a static creation method followed by an instance mutator (if needed):

     import static com.google.appengine.api.urlfetch.FetchOptions.Builder.*;

     ...
     URL url = getURLToFetch();
     urlFetchService.fetch(new HTTPRequest(url, HTTPMethod.GET,
         allowTruncate()));

     urlFetchService.fetch(new HTTPRequest(url, HTTPMethod.GET,
         allowTruncate().doNotFollowRedirects()));

See Also:
  Serialized Form

Nested Class Summary
`static class` `FetchOptions.Builder` Contains static creation methods for `FetchOptions`.

Field Summary
`static boolean` `DEFAULT_ALLOW_TRUNCATE`
`static java.lang.Double` `DEFAULT_DEADLINE` The default deadline is defined externally.
`static boolean` `DEFAULT_FOLLOW_REDIRECTS`

Method Summary
`FetchOptions` `allowTruncate()` Enables response truncation.
`FetchOptions` `disallowTruncate()` Disables response truncation.
`FetchOptions` `doNotFollowRedirects()` Disables following of redirects.
`FetchOptions` `doNotValidateCertificate()` Disables certificate validation on HTTPS connections.
`FetchOptions` `followRedirects()` Enables following of redirects.
`FetchOptions` `setDeadline(java.lang.Double deadline)` Sets the deadline, in seconds, for the fetch request.
`FetchOptions` `validateCertificate()` Enables certificate validation on HTTPS connections via the normal CA-based mechanism.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DEFAULT_ALLOW_TRUNCATE

    public static final boolean DEFAULT_ALLOW_TRUNCATE

See Also:
  Constant Field Values

### DEFAULT_FOLLOW_REDIRECTS

    public static final boolean DEFAULT_FOLLOW_REDIRECTS

See Also:
  Constant Field Values

### DEFAULT_DEADLINE

    public static final java.lang.Double DEFAULT_DEADLINE

  The default deadline is defined externally.

Method Detail

### allowTruncate

    public FetchOptions allowTruncate()

  Enables response truncation. Please read the class javadoc for an explanation of how allowTruncate is used.

  Returns:
    `this` (for chaining)

### disallowTruncate

    public FetchOptions disallowTruncate()

  Disables response truncation. Please read the class javadoc for an explanation of how allowTruncate is used.

  Returns:
    `this` (for chaining)

### followRedirects

    public FetchOptions followRedirects()

  Enables following of redirects. Please read the class javadoc for an explanation of how followRedirects is used.

  Returns:
    `this` (for chaining)

### validateCertificate

    public FetchOptions validateCertificate()

  Enables certificate validation on HTTPS connections via the normal CA-based mechanism. Please read the class javadoc for an explanation of how this option affects certificate validation behavior.

  Returns:
    `this` (for chaining)

### doNotValidateCertificate

    public FetchOptions doNotValidateCertificate()

  Disables certificate validation on HTTPS connections. Please read the class javadoc for an explanation of how this option affects certificate validation behavior.

  Returns:
    `this` (for chaining)

### setDeadline

    public FetchOptions setDeadline(java.lang.Double deadline)

  Sets the deadline, in seconds, for the fetch request.

  Returns:
    `this` (for chaining)
  Throws:
    `java.lang.IllegalArgumentException` - if deadline is not positive

### doNotFollowRedirects

    public FetchOptions doNotFollowRedirects()

  Disables following of redirects. Please read the class javadoc for an explanation of how doNotFollowRedirects is used.

  Returns:
    `this` (for chaining)