com.google.appengine.api.urlfetch
Class FetchOptions

java.lang.Object
  extended by 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)