####  type [ RequestOptions
](https://github.com/levigross/grequests/blob/9c307ef1f48d/request.go#L30) ¶

    
    
    type RequestOptions struct {
    
    	// Data is a map of key values that will eventually convert into the
    	// the body of a POST request.
    	Data map[[string](/builtin#string)][string](/builtin#string)
    
    	// Params is a map of query strings that may be used within a GET request
    	Params map[[string](/builtin#string)][string](/builtin#string)
    
    	// QueryStruct is a struct that encapsulates a set of URL query params
    	// this paramter is mutually exclusive with `Params map[string]string` (they cannot be combined)
    	// for more information please see <https://godoc.org/github.com/google/go-querystring/query>
    	QueryStruct interface{}
    
    	// Files is where you can include files to upload. The use of this data
    	// structure is limited to POST requests
    	Files []FileUpload
    
    	// JSON can be used when you wish to send JSON within the request body
    	JSON interface{}
    
    	// XML can be used if you wish to send XML within the request body
    	XML interface{}
    
    	// Headers if you want to add custom HTTP headers to the request,
    	// this is your friend
    	Headers map[[string](/builtin#string)][string](/builtin#string)
    
    	// InsecureSkipVerify is a flag that specifies if we should validate the
    	// server's TLS certificate. It should be noted that Go's TLS verify mechanism
    	// doesn't validate if a certificate has been revoked
    	InsecureSkipVerify [bool](/builtin#bool)
    
    	// DisableCompression will disable gzip compression on requests
    	DisableCompression [bool](/builtin#bool)
    
    	// UserAgent allows you to set an arbitrary custom user agent
    	UserAgent [string](/builtin#string)
    
    	// Host allows you to set an arbitrary custom host
    	Host [string](/builtin#string)
    
    	// Auth allows you to specify a user name and password that you wish to
    	// use when requesting the URL. It will use basic HTTP authentication
    	// formatting the username and password in base64 the format is:
    	// []string{username, password}
    	Auth [][string](/builtin#string)
    
    	// IsAjax is a flag that can be set to make the request appear
    	// to be generated by browser Javascript
    	IsAjax [bool](/builtin#bool)
    
    	// Cookies is an array of `http.Cookie` that allows you to attach
    	// cookies to your request
    	Cookies []*[http](/net/http).[Cookie](/net/http#Cookie)
    
    	// UseCookieJar will create a custom HTTP client that will
    	// process and store HTTP cookies when they are sent down
    	UseCookieJar [bool](/builtin#bool)
    
    	// Proxies is a map in the following format
    	// *protocol* => proxy address e.g http => <http://127.0.0.1:8080>
    	Proxies map[[string](/builtin#string)]*[url](/net/url).[URL](/net/url#URL)
    
    	// TLSHandshakeTimeout specifies the maximum amount of time waiting to
    	// wait for a TLS handshake. Zero means no timeout.
    	TLSHandshakeTimeout [time](/time).[Duration](/time#Duration)
    
    	// DialTimeout is the maximum amount of time a dial will wait for
    	// a connect to complete.
    	DialTimeout [time](/time).[Duration](/time#Duration)
    
    	// KeepAlive specifies the keep-alive period for an active
    	// network connection. If zero, keep-alive are not enabled.
    	DialKeepAlive [time](/time).[Duration](/time#Duration)
    
    	// RequestTimeout is the maximum amount of time a whole request(include dial / request / redirect)
    	// will wait.
    	RequestTimeout [time](/time).[Duration](/time#Duration)
    
    	// HTTPClient can be provided if you wish to supply a custom HTTP client
    	// this is useful if you want to use an OAUTH client with your request.
    	HTTPClient *[http](/net/http).[Client](/net/http#Client)
    
    	// SensitiveHTTPHeaders is a map of sensitive HTTP headers that a user
    	// doesn't want p