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 `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 `doNotValidateCertificate()` 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

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `FetchOptions.Builder` Contains static creation methods for `FetchOptions`.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static boolean` | `DEFAULT_ALLOW_TRUNCATE`
    `static java.lang.Double` | `DEFAULT_DEADLINE` The default deadline is defined externally.
    `static boolean` | `DEFAULT_FOLLOW_REDIRECTS`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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)