com.smartgwt.client.rpc

## Class RPCRequest

- java.lang.Object
- - com.smartgwt.client.core.JsObject
  - - com.smartgwt.client.core.DataClass
    - - com.smartgwt.client.rpc.RPCRequest

- All Implemented Interfaces:
    com.google.gwt.event.shared.HasHandlers
  Direct Known Subclasses:
    DSRequest, WSRequest

      public class RPCRequest
      extends DataClass

  Encapsulates a client/server RPC request. You'll need to provide an instance of this class (or a constructor for it) to the `RPCManager.sendRequest()` method. If you use the `RPCManager.send()` method, an instance of RPCRequest will be created for you.
  See Also:
    `RPCManager.send(java.lang.String, com.smartgwt.client.rpc.RPCCallback, com.smartgwt.client.rpc.RPCRequest)`, `RPCManager.sendRequest(com.smartgwt.client.rpc.RPCRequest)`

- - ### Field Summary

    - ### Fields inherited from class com.smartgwt.client.core.DataClass

      `factoryCreated, factoryProperties, readOnly`

    - ### Fields inherited from class com.smartgwt.client.core.JsObject

      `jsObj`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RPCRequest()`
    `RPCRequest(com.google.gwt.core.client.JavaScriptObject jsObj)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `create()` RPCRequest shouldn't be created directly.
    `java.lang.String` | `getActionURL()` Overrides RPCManager.actionURL for this request only.
    `java.lang.Boolean` | `getAllowIE9Leak()` Advanced flag to avoid a potential memory leak in Internet Explorer 9 for requests with JSON formatted responses.
    `java.lang.Boolean` | `getBypassCache()` For xmlHttp transport + httpMethod: "GET" only, set to true to force a conditional GET request even if the browser thinks it has a current cached response.
    `java.lang.String` | `getCallbackParam()` For use only with the `scriptInclude` transport, this attribute specifies the name of the URL parameter which is used to specify the callback function that the server is expected to call by writing out JavaScript code.
    `java.lang.Boolean` | `getContainsCredentials()` For use during `Relogin`, this property marks this request an attempt to login, therefore a response containing the `loginRequiredMarker` is a normal condition and should result in the status code `STATUS_LOGIN_INCORRECT` rather than a call to `loginRequired()`.
    `java.lang.String` | `getContentType()` Valid with the xmlHttpRequest transport only and only when `httpMethod` is set to "POST".
    `com.google.gwt.core.client.JavaScriptObject` | `getData()` Returns the payload of this request to be sent to the server, as a JavaScriptObject.
    `java.lang.String` | `getDataAsString()`
    `java.lang.Boolean` | `getDownloadResult()` If enabled, causes the RPCRequest to download the requested resource as a file, either showing the browser's Save dialog or displaying the file-content in `a new browser window`.
    `java.lang.Boolean` | `getDownloadToNewWindow()` When `downloadResult` is true, setting this attribute to true causes the content of the downloaded file to be displayed in a new browser window.
    `java.lang.Boolean` | `getEvalResult()` This works similarly to `serverOutputAsString` except the resulting String is automatically evaluated as JavaScript.
    `java.util.Map` | `getHttpHeaders()` HTTP headers to send, as a Object mapping Header name -> Header value, eg { "Content-Type" : "text/xml" }
    `java.lang.String` | `getHttpMethod()` Selects the HTTP method that will be used for the request.
    `java.lang.String` | `getHttpProxyURL()` The proxy URL to use for this request (if `useHttpProxy` is set for this request).
    `java.lang.Boolean` | `getIgnoreTimeout()` When set to true, no reply is expected from the server.
    `java.lang.Boolean` | `getOmitNullMapValuesInResponse()` If enabled, the server omits any key/value pairs in map that have null values from the response.
    `static RPCRequest` | `getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)`
    `java.util.Map` | `getParams()` Values to be sent as simple HTTP params, as a JavaScript Object where each property/value pair will become an HTTP parameter name and value.
    `java.lang.String` | `getPrompt()` Overrides RPCManager.defaultPrompt for this request only.
    `java.lang.String` | `getPromptCursor()` Controls the cursor shown when `promptStyle` is set to `"cursor"` for this request only.
    `int` | `getPromptDelay()` Overrides RPCManager.promptDelay for this request only.
    `PromptStyle` | `getPromptStyle()` Controls the prompt style for this request only.
    `java.lang.Boolean` | `getSendNoQueue()` When set to true, this request is sent to the server immediately, bypassing any current queue.
    `java.lang.Boolean` | `getServerOutputAsString()` Setting this flag makes the body of the HTTP response available as a String in the `callback` as `RPCResponse.data`.
    `java.lang.Boolean` | `getShowPrompt()` Overrides `RPCManager.showPrompt` for this request only.
    `java.lang.Boolean` | `getSuppressAutoDraw()` If `evalResult` is set, setting this property to true causes `Canvas.autoDraw` to be set to false for the duration of the result evaluation - which is generally what you want if you're returning new components from the server.
    `java.lang.Integer` | `getTimeout()` Sets the timeout on this request.
    `RPCTransport` | `getTransport()` Selects the transport used for this RPCRequest.
    `java.lang.Boolean` | `getUseHttpProxy()` Indicates whether this request should use the HttpProxyServlet in order to enable contacting hosts other than the origin server (available only in Pro Edition or better).
    `java.lang.Boolean` | `getUseSimpleHttp()` When set to true, assume the request is not going to the Smart GWT server, and hence send a simple HTTP request that does not use Smart GWT-specific request encoding.
    `java.lang.Boolean` | `getWillHandleError()` With willHandleError:false, rpcResponses that indicate an error go through centralized handling in the RPCManager and rpcRequest.callback is never invoked.
    `java.lang.Boolean` | `getWithCredentials()` In browsers that support Cross-Origin Resource Sharing and XMLHttpRequest 2, and where the service at the `actionURL` allows the origin to send credentials (see `Access-Control-Allow-Credentials`), should user credentials such as cookies, HTTP authentication, and client-side SSL certificates be sent with the actual CORS request?
    `void` | `setActionURL(java.lang.String actionURL)` Overrides RPCManager.actionURL for this request only.
    `void` | `setAllowIE9Leak(java.lang.Boolean allowIE9Leak)` Advanced flag to avoid a potential memory leak in Internet Explorer 9 for requests with JSON formatted responses.
    `void` | `setBypassCache(java.lang.Boolean bypassCache)` For xmlHttp transport + httpMethod: "GET" only, set to true to force a conditional GET request even if the browser thinks it has a current cached response.
    `void` | `setCallbackParam(java.lang.String callbackParam)` For use only with the `scriptInclude` transport, this attribute specifies the name of the URL parameter which is used to specify the callback function that the server is expected to call by writing out JavaScript code.
    `void` | `setContainsCredentials(java.lang.Boolean containsCredentials)` For use during `Relogin`, this property marks this request an attempt to login, therefore a response containing the `loginRequiredMarker` is a normal condition and should result in the status code `STATUS_LOGIN_INCORRECT` rather than a call to `loginRequired()`.
    `void` | `setContentType(java.lang.String contentType)` Valid with the xmlHttpRequest transport only and only when `httpMethod` is set to "POST".
    `void` | `setData(com.google.gwt.core.client.JavaScriptObject data)` This attribute specifies the payload of the RPCRequest.
    `void` | `setData(java.util.Map data)` This attribute specifies the payload of the RPCRequest.
    `void` | `setData(Record data)` This attribute specifies the payload of the RPCRequest.
    `void` | `setData(java.lang.String data)` This attribute specifies the payload of the RPCRequest.
    `void` | `setDownloadResult(java.lang.Boolean downloadResult)` If enabled, causes the RPCRequest to download the requested resource as a file, either showing the browser's Save dialog or displaying the file-content in `a new browser window`.
    `void` | `setDownloadToNewWindow(java.lang.Boolean downloadToNewWindow)` When `downloadResult` is true, setting this attribute to true causes the content of the downloaded file to be displayed in a new browser window.
    `void` | `setEvalResult(java.lang.Boolean evalResult)` This works similarly to `serverOutputAsString` except the resulting String is automatically evaluated as JavaScript.
    `void` | `setEvalVars(java.util.Map evalVars)` If you've set `evalResult` : true, then the property values of this object will be available in the evaluation scope of the result under the variable names specified by the property names.
    `void` | `setHttpHeaders(java.util.Map httpHeaders)` HTTP headers to send, as a Object mapping Header name -> Header value, eg { "Content-Type" : "text/xml" }
    `void` | `setHttpMethod(java.lang.String httpMethod)` Selects the HTTP method that will be used for the request.
    `void` | `setHttpProxyURL(java.lang.String httpProxyURL)` The proxy URL to use for this request (if `useHttpProxy` is set for this request).
    `void` | `setIgnoreTimeout(java.lang.Boolean ignoreTimeout)` When set to true, no reply is expected from the server.
    `void` | `setOmitNullMapValuesInResponse(java.lang.Boolean omitNullMapValuesInResponse)` If enabled, the server omits any key/value pairs in map that have null values from the response.
    `void` | `setParams(java.util.Map params)` Values to be sent as simple HTTP params, as a JavaScript Object where each property/value pair will become an HTTP parameter name and value.
    `void` | `setPrompt(java.lang.String prompt)` Overrides RPCManager.defaultPrompt for this request only.
    `void` | `setPromptCursor(java.lang.String promptCursor)` Controls the cursor shown when `promptStyle` is set to `"cursor"` for this request only.
    `void` | `setPromptDelay(int promptDelay)` Overrides RPCManager.promptDelay for this request only.
    `void` | `setPromptStyle(PromptStyle promptStyle)` Controls the prompt style for this request only.
    `void` | `setSendNoQueue(java.lang.Boolean sendNoQueue)` When set to true, this request is sent to the server immediately, bypassing any current queue.
    `void` | `setServerOutputAsString(java.lang.Boolean serverOutputAsString)` Setting this flag makes the body of the HTTP response available as a String in the `callback` as `RPCResponse.data`.
    `void` | `setShowPrompt(java.lang.Boolean showPrompt)` Overrides `RPCManager.showPrompt` for this request only.
    `void` | `setSuppressAutoDraw(java.lang.Boolean suppressAutoDraw)` If `evalResult` is set, setting this property to true causes `Canvas.autoDraw` to be set to false for the duration of the result evaluation - which is generally what you want if you're returning new components from the server.
    `void` | `setTimeout(java.lang.Integer timeout)` Sets the timeout on this request.
    `void` | `setTransport(RPCTransport transport)` Selects the transport used for this RPCRequest.
    `void` | `setUseHttpProxy(java.lang.Boolean useHttpProxy)` Indicates whether this request should use the HttpProxyServlet in order to enable contacting hosts other than the origin server (available only in Pro Edition or better).
    `void` | `setUseSimpleHttp(java.lang.Boolean useSimpleHttp)` When set to true, assume the request is not going to the Smart GWT server, and hence send a simple HTTP request that does not use Smart GWT-specific request encoding.
    `void` | `setWillHandleError(java.lang.Boolean willHandleError)` With willHandleError:false, rpcResponses that indicate an error go through centralized handling in the RPCManager and rpcRequest.callback is never invoked.
    `void` | `setWithCredentials(java.lang.Boolean withCredentials)` In browsers that support Cross-Origin Resource Sharing and XMLHttpRequest 2, and where the service at the `actionURL` allows the origin to send credentials (see `Access-Control-Allow-Credentials`), should user credentials such as cookies, HTTP authentication, and client-side SSL certificates be sent with the actual CORS request?

    - ### Methods inherited from class com.smartgwt.client.core.DataClass

      `applyFactoryProperties, doAddHandler, fireEvent, getAttribute, getAttributeAsBoolean, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDouble, getAttributeAsDoubleArray, getAttributeAsFloat, getAttributeAsInt, getAttributeAsIntArray, getAttributeAsJavaScriptObject, getAttributeAsLong, getAttributeAsMap, getAttributeAsObject, getAttributeAsRecord, getAttributeAsString, getAttributeAsStringArray, getAttributes, getHandlerCount, getReadOnly, isFactoryCreated, logConfiguration, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttributeAsJavaObject, setFactoryCreated, setReadOnly`

    - ### Methods inherited from class com.smartgwt.client.core.JsObject

      `equals, getJsObj, hashCode, isCreated, setJavaScriptObject, setJsObj`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### RPCRequest

          public RPCRequest()

    - #### RPCRequest

          public RPCRequest(com.google.gwt.core.client.JavaScriptObject jsObj)

  - ### Method Detail

    - #### getOrCreateRef

          public static RPCRequest getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)

    - #### setActionURL

          public void setActionURL(java.lang.String actionURL)

      Overrides RPCManager.actionURL for this request only. If you're using queuing, note that queues as per-URL - in other words all RPCRequests in a queue must go to a single URL. If you attempt to send a request with an actionURL that is different from those already in the queue, it will be sent to the server separately, ahead of the queue, and a warning will be logged to the Developer Console.
      Parameters:
        `actionURL` - Default value is RPCManager.actionURL
      See Also:
        `com.smartgwt.client.rpc.RPCManager#actionURL`

    - #### getActionURL

          public java.lang.String getActionURL()

      Overrides RPCManager.actionURL for this request only. If you're using queuing, note that queues as per-URL - in other words all RPCRequests in a queue must go to a single URL. If you attempt to send a request with an actionURL that is different from those already in the queue, it will be sent to the server separately, ahead of the queue, and a warning will be logged to the Developer Console.
      Returns:
        String
      See Also:
        `com.smartgwt.client.rpc.RPCManager#actionURL`

    - #### setAllowIE9Leak

          public void setAllowIE9Leak(java.lang.Boolean allowIE9Leak)

      Advanced flag to avoid a potential memory leak in Internet Explorer 9 for requests with JSON formatted responses.

      This attribute may be set to `false` to explicitly enable the workaround described `here` for this request, avoiding a potential memory leak in Internet Explorer 9.

      This workaround has a limitation in that if parsing the JSON response generates certain object types including JavaScript `Date` or `function` objects, attempts to interact with these objects can subsequently lead to a JavaScript error with the message `"Can't execute code from a freed script"`.

      This workaround therefore may not be suitable for all transactions or dataSources within a given application.

      This property may also be set globally within an application (via `allowIE9Leak`)_.

      Note: This memory leak and workaround is discussed further in the online Smart GWT FAQ.

      Note : This is an advanced setting

      Parameters:
        `allowIE9Leak` - Default value is null

    - #### getAllowIE9Leak

          public java.lang.Boolean getAllowIE9Leak()

      Advanced flag to avoid a potential memory leak in Internet Explorer 9 for requests with JSON formatted responses.

      This attribute may be set to `false` to explicitly enable the workaround described `here` for this request, avoiding a potential memory leak in Internet Explorer 9.

      This workaround has a limitation in that if parsing the JSON response generates certain object types including JavaScript `Date` or `function` objects, attempts to interact with these objects can subsequently lead to a JavaScript error with the message `"Can't execute code from a freed script"`.

      This workaround therefore may not be suitable for all transactions or dataSources within a given application.

      This property may also be set globally within an application (via `allowIE9Leak`)_.

      Note: This memory leak and workaround is discussed further in the online Smart GWT FAQ.

      Returns:
        Boolean

    - #### setBypassCache

          public void setBypassCache(java.lang.Boolean bypassCache)

      For xmlHttp transport + httpMethod: "GET" only, set to true to force a conditional GET request even if the browser thinks it has a current cached response.

      Note : This is an advanced setting

      Parameters:
        `bypassCache` - Default value is false

    - #### getBypassCache

          public java.lang.Boolean getBypassCache()

      For xmlHttp transport + httpMethod: "GET" only, set to true to force a conditional GET request even if the browser thinks it has a current cached response.
      Returns:
        Boolean

    - #### setCallbackParam

          public void setCallbackParam(java.lang.String callbackParam)

      For use only with the `scriptInclude` transport, this attribute specifies the name of the URL parameter which is used to specify the callback function that the server is expected to call by writing out JavaScript code. The actual function to call is automatically generated and differs for every request (to allow concurrency).

      For example, with `callbackParam` set to it's default value of "callback", the server might be contacted with a URL like:

               loadData?callback=isc_scriptIncludeCallback_5

      .. then the server's response should look like:

               isc_scriptIncludeCallback_5({ .. data .. });

      The name "isc_scriptIncludeCallback_5" is automatically generated and will differ each time the server is contacted.

      Smart GWT makes of this server-provided callback mechanism, then calls `callback` normally.

      `rpcRequest.callbackParam` is ignored by all transport other than `scriptInclude`.

      Parameters:
        `callbackParam` - Default value is "callback"

    - #### getCallbackParam

          public java.lang.String getCallbackParam()

      For use only with the `scriptInclude` transport, this attribute specifies the name of the URL parameter which is used to specify the callback function that the server is expected to call by writing out JavaScript code. The actual function to call is automatically generated and differs for every request (to allow concurrency).

      For example, with `callbackParam` set to it's default value of "callback", the server might be contacted with a URL like:

               loadData?callback=isc_scriptIncludeCallback_5

      .. then the server's response should look like:

               isc_scriptIncludeCallback_5({ .. data .. });

      The name "isc_scriptIncludeCallback_5" is automatically generated and will differ each time the server is contacted.

      Smart GWT makes of this server-provided callback mechanism, then calls `callback` normally.

      `rpcRequest.callbackParam` is ignored by all transport other than `scriptInclude`.

      Returns:
        String

    - #### setContainsCredentials

          public void setContainsCredentials(java.lang.Boolean containsCredentials)

      For use during `Relogin`, this property marks this request an attempt to login, therefore a response containing the `loginRequiredMarker` is a normal condition and should result in the status code `STATUS_LOGIN_INCORRECT` rather than a call to `loginRequired()`.

      It is not required to set `containsCredentials`, however, it does typically simplify relogin logic by separating the handling of RPCs that are login attempts from RPCs that are not.

      Note : This is an advanced setting

      Parameters:
        `containsCredentials` - Default value is false
      See Also:
        `Relogin overview and related methods`

    - #### getContainsCredentials

          public java.lang.Boolean getContainsCredentials()

      For use during `Relogin`, this property marks this request an attempt to login, therefore a response containing the `loginRequiredMarker` is a normal condition and should result in the status code `STATUS_LOGIN_INCORRECT` rather than a call to `loginRequired()`.

      It is not required to set `containsCredentials`, however, it does typically simplify relogin logic by separating the handling of RPCs that are login attempts from RPCs that are not.

      Returns:
        Boolean
      See Also:
        `Relogin overview and related methods`

    - #### setContentType

          public void setContentType(java.lang.String contentType)

      Valid with the xmlHttpRequest transport only and only when `httpMethod` is set to "POST".
      Parameters:
        `contentType` - Default value is "application/x-www-form-urlencoded"

    - #### getContentType

          public java.lang.String getContentType()

      Valid with the xmlHttpRequest transport only and only when `httpMethod` is set to "POST".
      Returns:
        String

    - #### setData

          public void setData(java.lang.String data)

      This attribute specifies the payload of the RPCRequest. When using the `Smart GWT server`, objects sent to the server as `request.data` will be available on the server-side `RPCRequest` object as Java Objects. This is achieved by serializing the client side data in a JSON type format and generating Java Objects on the server from this serialized data.

      If the client side `request.data` is set to a Java object in your SmartGWT code it will be serialized as JSON as follows:
      - Numeric client side values (int, Integer, etc) will be serialized as JavaScript numbers.
      - String values will be serialized as JavaScript strings.
      - Date values will be serialized as JavaScript dates.
      - Maps or Record objects will be serialized as JavaScript Objects.
      - Arrays or Lists will become JavaScript arrays
      Serialization of Maps and Arrays is recursive - each entry in an Array, or attribute on a Map will also be serialized according to the above rules.
      Note that you can also set `request.data` directly to a JavaScriptObject, and use the `JSOHelper` class or `SomeObject.getJSObj()` to perform your own data conversions on the client. The serialized JavaScript will then be converted back to Java on the server according to the following rules.

      Here are the mapping of JavaScript types to their corresponding server object types:

      JS Type | Java Type
      Object: {} | Map
      Array: [] | List
      String | String
      Number | Long|Double
      Boolean | Boolean
      Date | java.util.Date
      String | com.smartgwt.client.types.ValueEnum

      Note that the order of keys/values in the Maps created on the server is not guaranteed because JavaScript Object literals do not guarantee order.

      When using JPA or Hibernate Java value used can be affected by the Java Bean declaration. See `DsRequestBeanTypes` for details.

      Server->client conversion follows this table as well, with some extras. See the toJS() method on JSTranslater in the server documentation for a description of additional behaviors.

      When not communicating with the Smart GWT server, `rpcRequest.data` becomes simple HTTP parameters or an HTTP request body - see `useSimpleHttp` for details.

      Parameters:
        `data` - Default value is null
      See Also:
        `com.smartgwt.client.rpc.RPCResponse#setData`

    - #### setData

          public void setData(Record data)

      This attribute specifies the payload of the RPCRequest. When using the `Smart GWT server`, objects sent to the server as `request.data` will be available on the server-side `RPCRequest` object as Java Objects. This is achieved by serializing the client side data in a JSON type format and generating Java Objects on the server from this serialized data.

      If the client side `request.data` is set to a Java object in your SmartGWT code it will be serialized as JSON as follows:
      - Numeric client side values (int, Integer, etc) will be serialized as JavaScript numbers.
      - String values will be serialized as JavaScript strings.
      - Date values will be serialized as JavaScript dates.
      - Maps or Record objects will be serialized as JavaScript Objects.
      - Arrays or Lists will become JavaScript arrays
      Serialization of Maps and Arrays is recursive - each entry in an Array, or attribute on a Map will also be serialized according to the above rules.
      Note that you can also set `request.data` directly to a JavaScriptObject, and use the `JSOHelper` class or `SomeObject.getJSObj()` to perform your own data conversions on the client. The serialized JavaScript will then be converted back to Java on the server according to the following rules.

      Here are the mapping of JavaScript types to their corresponding server object types:

      JS Type | Java Type
      Object: {} | Map
      Array: [] | List
      String | String
      Number | Long|Double
      Boolean | Boolean
      Date | java.util.Date
      String | com.smartgwt.client.types.ValueEnum

      Note that the order of keys/values in the Maps created on the server is not guaranteed because JavaScript Object literals do not guarantee order.

      When using JPA or Hibernate Java value used can be affected by the Java Bean declaration. See `DsRequestBeanTypes` for details.

      Server->client conversion follows this table as well, with some extras. See the toJS() method on JSTranslater in the server documentation for a description of additional behaviors.

      When not communicating with the Smart GWT server, `rpcRequest.data` becomes simple HTTP parameters or an HTTP request body - see `useSimpleHttp` for details.

      Parameters:
        `data` - Default value is null
      See Also:
        `com.smartgwt.client.rpc.RPCResponse#setData`

    - #### setData

          public void setData(java.util.Map data)

      This attribute specifies the payload of the RPCRequest. When using the `Smart GWT server`, objects sent to the server as `request.data` will be available on the server-side `RPCRequest` object as Java Objects. This is achieved by serializing the client side data in a JSON type format and generating Java Objects on the server from this serialized data.

      If the client side `request.data` is set to a Java object in your SmartGWT code it will be serialized as JSON as follows:
      - Numeric client side values (int, Integer, etc) will be serialized as JavaScript numbers.
      - String values will be serialized as JavaScript strings.
      - Date values will be serialized as JavaScript dates.
      - Maps or Record objects will be serialized as JavaScript Objects.
      - Arrays or Lists will become JavaScript arrays
      Serialization of Maps and Arrays is recursive - each entry in an Array, or attribute on a Map will also be serialized according to the above rules.
      Note that you can also set `request.data` directly to a JavaScriptObject, and use the `JSOHelper` class or `SomeObject.getJSObj()` to perform your own data conversions on the client. The serialized JavaScript will then be converted back to Java on the server according to the following rules.

      Here are the mapping of JavaScript types to their corresponding server object types:

      JS Type | Java Type
      Object: {} | Map
      Array: [] | List
      String | String
      Number | Long|Double
      Boolean | Boolean
      Date | java.util.Date
      String | com.smartgwt.client.types.ValueEnum

      Note that the order of keys/values in the Maps created on the server is not guaranteed because JavaScript Object literals do not guarantee order.

      When using JPA or Hibernate Java value used can be affected by the Java Bean declaration. See `DsRequestBeanTypes` for details.

      Server->client conversion follows this table as well, with some extras. See the toJS() method on JSTranslater in the server documentation for a description of additional behaviors.

      When not communicating with the Smart GWT server, `rpcRequest.data` becomes simple HTTP parameters or an HTTP request body - see `useSimpleHttp` for details.

      Parameters:
        `data` - Default value is null
      See Also:
        `com.smartgwt.client.rpc.RPCResponse#setData`

    - #### setDownloadResult

          public void setDownloadResult(java.lang.Boolean downloadResult)

      If enabled, causes the RPCRequest to download the requested resource as a file, either showing the browser's Save dialog or displaying the file-content in `a new browser window`.

      Setting this attribute to true means that no callback will be fired and implies that the request will silently use `transport`: "hiddenFrame".

      Note : This is an advanced setting

      Parameters:
        `downloadResult` - Default value is false

    - #### getDownloadResult

          public java.lang.Boolean getDownloadResult()

      If enabled, causes the RPCRequest to download the requested resource as a file, either showing the browser's Save dialog or displaying the file-content in `a new browser window`.

      Setting this attribute to true means that no callback will be fired and implies that the request will silently use `transport`: "hiddenFrame".

      Returns:
        Boolean

    - #### setDownloadToNewWindow

          public void setDownloadToNewWindow(java.lang.Boolean downloadToNewWindow)

      When `downloadResult` is true, setting this attribute to true causes the content of the downloaded file to be displayed in a new browser window.

      Note : This is an advanced setting

      Parameters:
        `downloadToNewWindow` - Default value is false

    - #### getDownloadToNewWindow

          public java.lang.Boolean getDownloadToNewWindow()

      When `downloadResult` is true, setting this attribute to true causes the content of the downloaded file to be displayed in a new browser window.
      Returns:
        Boolean

    - #### setEvalResult

          public void setEvalResult(java.lang.Boolean evalResult)

      This works similarly to `serverOutputAsString` except the resulting String is automatically evaluated as JavaScript. The result of the evaluation is then passed to any specified `callback` as `RPCResponse.data`.

      This feature can be used to dynamically load new application modules into a running application. An RPCRequest with `evalResult` enabled can be used to fetch a static .js file or JavaScript dynamically generated by the server. The returned JavaScript can contain anything that a JavaScript file loaded at init time can contain, including new views and new Smart GWT class definitions.

      Example usage with `RPCManager.sendRequest()`:

            isc.RPCManager.sendRequest({
                evalResult:true,
                actionURL:"js/loadLabel.js",
                evalVars:{var1:"A Value"}
            });

      This call would execute the code from `loadLabel.js`, and make the variable `var1` available to that code. Therefore if the .js file contained this code:

            isc.Label.create({
                contents:var1
            })

      A label would be created with contents set to the value of `var1` - the string `"A Value"`.

      This feature relies on the XMLHttpRequest object which can be disabled by end-users in some supported browsers. See `PlatformDependencies` for more information.

      Note : This is an advanced setting

      Parameters:
        `evalResult` - Default value is false
      See Also:
        `ViewLoader`, `setEvalVars(java.util.Map)`

    - #### getEvalResult

          public java.lang.Boolean getEvalResult()

      This works similarly to `serverOutputAsString` except the resulting String is automatically evaluated as JavaScript. The result of the evaluation is then passed to any specified `callback` as `RPCResponse.data`.

      This feature can be used to dynamically load new application modules into a running application. An RPCRequest with `evalResult` enabled can be used to fetch a static .js file or JavaScript dynamically generated by the server. The returned JavaScript can contain anything that a JavaScript file loaded at init time can contain, including new views and new Smart GWT class definitions.

      Example usage with `RPCManager.sendRequest()`:

            isc.RPCManager.sendRequest({
                evalResult:true,
                actionURL:"js/loadLabel.js",
                evalVars:{var1:"A Value"}
            });

      This call would execute the code from `loadLabel.js`, and make the variable `var1` available to that code. Therefore if the .js file contained this code:

            isc.Label.create({
                contents:var1
            })

      A label would be created with contents set to the value of `var1` - the string `"A Value"`.

      This feature relies on the XMLHttpRequest object which can be disabled by end-users in some supported browsers. See `PlatformDependencies` for more information.

      Returns:
        Boolean
      See Also:
        `ViewLoader`, `com.smartgwt.client.rpc.RPCRequest#getEvalVars`

    - #### setEvalVars

          public void setEvalVars(java.util.Map evalVars)

      If you've set `evalResult` : true, then the property values of this object will be available in the evaluation scope of the result under the variable names specified by the property names.

      So e.g. if evalVars is: `{foo: "bar"}` then a reference to the variable `foo` in the result will evaluate to `"bar"`.

      Note : This is an advanced setting

      Parameters:
        `evalVars` - Default value is null

    - #### setHttpHeaders

          public void setHttpHeaders(java.util.Map httpHeaders)

      HTTP headers to send, as a Object mapping Header name -> Header value, eg
      { "Content-Type" : "text/xml" }

      Valid with the xmlHttpRequest `transport` only.

      Parameters:
        `httpHeaders` - Default value is null

    - #### getHttpHeaders

          public java.util.Map getHttpHeaders()

      HTTP headers to send, as a Object mapping Header name -> Header value, eg
      { "Content-Type" : "text/xml" }

      Valid with the xmlHttpRequest `transport` only.

      Returns:
        Map

    - #### setHttpMethod

          public void setHttpMethod(java.lang.String httpMethod)

      Selects the HTTP method that will be used for the request. Typical values are "POST" and "GET".

      The more obscure "PUT", "DELETE" and "HEAD" methods are also valid, however, none of these are supported by the Safari browser previous to version 3.0.

      Parameters:
        `httpMethod` - Default value is "POST"

    - #### getHttpMethod

          public java.lang.String getHttpMethod()

      Selects the HTTP method that will be used for the request. Typical values are "POST" and "GET".

      The more obscure "PUT", "DELETE" and "HEAD" methods are also valid, however, none of these are supported by the Safari browser previous to version 3.0.

      Returns:
        String

    - #### setHttpProxyURL

          public void setHttpProxyURL(java.lang.String httpProxyURL)

      The proxy URL to use for this request (if `useHttpProxy` is set for this request). If unset, the value of `httpProxyURL` will be used instead.
      Parameters:
        `httpProxyURL` - Default value is null
      See Also:
        `com.smartgwt.client.rpc.RPCManager#httpProxyURL`

    - #### getHttpProxyURL

          public java.lang.String getHttpProxyURL()

      The proxy URL to use for this request (if `useHttpProxy` is set for this request). If unset, the value of `httpProxyURL` will be used instead.
      Returns:
        String
      See Also:
        `com.smartgwt.client.rpc.RPCManager#httpProxyURL`

    - #### setIgnoreTimeout

          public void setIgnoreTimeout(java.lang.Boolean ignoreTimeout)

      When set to true, no reply is expected from the server. However, if a reply is received, it will be processed.

      Note: setting this to true, forces `sendNoQueue` to `true` for this request.

      Note : This is an advanced setting

      Parameters:
        `ignoreTimeout` - Default value is false

    - #### getIgnoreTimeout

          public java.lang.Boolean getIgnoreTimeout()

      When set to true, no reply is expected from the server. However, if a reply is received, it will be processed.

      Note: setting this to true, forces `sendNoQueue` to `true` for this request.

      Returns:
        Boolean

    - #### setOmitNullMapValuesInResponse

          public void setOmitNullMapValuesInResponse(java.lang.Boolean omitNullMapValuesInResponse)

      If enabled, the server omits any key/value pairs in map that have null values from the response. This can reduce the size of the response when many fields have null values.

      To enable this globally for all responses you can set RPCManager.omitNullMapValuesInResponse in `server.properties`.

      Note : This is an advanced setting

      Parameters:
        `omitNullMapValuesInResponse` - Default value is false

    - #### getOmitNullMapValuesInResponse

          public java.lang.Boolean getOmitNullMapValuesInResponse()

      If enabled, the server omits any key/value pairs in map that have null values from the response. This can reduce the size of the response when many fields have null values.

      To enable this globally for all responses you can set RPCManager.omitNullMapValuesInResponse in `server.properties`.

      Returns:
        Boolean

    - #### setParams

          public void setParams(java.util.Map params)

      Values to be sent as simple HTTP params, as a JavaScript Object where each property/value pair will become an HTTP parameter name and value. These parameters are then accessible on the server, for example, using servletRequest.getParameter(paramName) in Java Servlets.

      Array-valued parameters will be submitted as multiple instances of the same parameter, similar to an HTML form with a multi-select (?paramName=value1&paramName=value2 ...), accessible as getParameterValues(paramName) in Java Servlets. Any non-atomic type, such as an Object, will be serialized to JSON by the `JSONEncoder`. If this isn't desirable, serialize the data in advance so that the value provided in `rpcRequest.params` is a String.

      Note that this API is primarily used in combination with `useSimpleHttp` - when contacting the Smart GWT Server, use `data` instead, which provides full JavaScript <-> Java translation of arbitrary structures. `rpcRequest.params` can also be used with the Smart GWT Server, where it provides an an opportunity to send additional data aside from the main `data` payload. This is useful for adding data to DataSource requests which will be kept separate from the automatically sent DataSource data, or for making parts of the request visible in the URL for HTTP-level logging or layer 4 switches.

      Note that in contrast to `data` object, the data in `rpcRequest.params` is not deserialized by the Smart GWT server, and all values arrive on the server as String type (like HTTP parameters always do).

      Note: The params are submitted once per http transaction. If you are using `request queuing` to bundle multiple RPCRequests or DSRequests into a single HTTP turnaround, the params from the various RPCRequests will be merged, with the later-queued transactions winning on parameter name collisions. A warning will be logged in the Developer Console if multiple RPCRequests specified params.

      Parameters:
        `params` - Default value is null

    - #### getParams

          public java.util.Map getParams()

      Values to be sent as simple HTTP params, as a JavaScript Object where each property/value pair will become an HTTP parameter name and value. These parameters are then accessible on the server, for example, using servletRequest.getParameter(paramName) in Java Servlets.

      Array-valued parameters will be submitted as multiple instances of the same parameter, similar to an HTML form with a multi-select (?paramName=value1&paramName=value2 ...), accessible as getParameterValues(paramName) in Java Servlets. Any non-atomic type, such as an Object, will be serialized to JSON by the `JSONEncoder`. If this isn't desirable, serialize the data in advance so that the value provided in `rpcRequest.params` is a String.

      Note that this API is primarily used in combination with `useSimpleHttp` - when contacting the Smart GWT Server, use `data` instead, which provides full JavaScript <-> Java translation of arbitrary structures. `rpcRequest.params` can also be used with the Smart GWT Server, where it provides an an opportunity to send additional data aside from the main `data` payload. This is useful for adding data to DataSource requests which will be kept separate from the automatically sent DataSource data, or for making parts of the request visible in the URL for HTTP-level logging or layer 4 switches.

      Note that in contrast to `data` object, the data in `rpcRequest.params` is not deserialized by the Smart GWT server, and all values arrive on the server as String type (like HTTP parameters always do).

      Note: The params are submitted once per http transaction. If you are using `request queuing` to bundle multiple RPCRequests or DSRequests into a single HTTP turnaround, the params from the various RPCRequests will be merged, with the later-queued transactions winning on parameter name collisions. A warning will be logged in the Developer Console if multiple RPCRequests specified params.

      Returns:
        Map

    - #### setPrompt

          public void setPrompt(java.lang.String prompt)

      Overrides RPCManager.defaultPrompt for this request only. If you're using queuing, note that the prompt string from the first request in the queue is the one that is shown to the user.
      Parameters:
        `prompt` -
      See Also:
        `HTMLString . Default value is RPCManager.defaultPrompt`, `com.smartgwt.client.rpc.RPCManager#defaultPrompt`, `com.smartgwt.client.rpc.RPCManager#showPrompt`, `com.smartgwt.client.rpc.RPCManager#promptStyle`, `com.smartgwt.client.rpc.RPCManager#promptCursor`, `setShowPrompt(java.lang.Boolean)`, `setPromptStyle(com.smartgwt.client.types.PromptStyle)`, `setPromptCursor(java.lang.String)`, `RpcPrompt overview and related methods`

    - #### getPrompt

          public java.lang.String getPrompt()

      Overrides RPCManager.defaultPrompt for this request only. If you're using queuing, note that the prompt string from the first request in the queue is the one that is shown to the user.
      Returns:
      See Also:
        `HTMLString`, `com.smartgwt.client.rpc.RPCManager#defaultPrompt`, `com.smartgwt.client.rpc.RPCManager#showPrompt`, `com.smartgwt.client.rpc.RPCManager#promptStyle`, `com.smartgwt.client.rpc.RPCManager#promptCursor`, `getShowPrompt()`, `getPromptStyle()`, `getPromptCursor()`, `RpcPrompt overview and related methods`

    - #### setPromptCursor

          public void setPromptCursor(java.lang.String promptCursor)

      Controls the cursor shown when `promptStyle` is set to `"cursor"` for this request only. Defaults to `promptCursor`.
      Parameters:
        `promptCursor` - Default value is "progress"
      See Also:
        `com.smartgwt.client.rpc.RPCManager#promptCursor`, `RpcPrompt overview and related methods`

    - #### getPromptCursor

          public java.lang.String getPromptCursor()

      Controls the cursor shown when `promptStyle` is set to `"cursor"` for this request only. Defaults to `promptCursor`.
      Returns:
        String
      See Also:
        `com.smartgwt.client.rpc.RPCManager#promptCursor`, `RpcPrompt overview and related methods`

    - #### setPromptDelay

          public void setPromptDelay(int promptDelay)

      Overrides RPCManager.promptDelay for this request only. Defaults to `promptDelay`.

      If you're using queuing, note that the promptDelay of the first request is used for the entire queue.

      Note : This is an advanced setting

      Parameters:
        `promptDelay` - Default value is RPCManager.promptDelay
      See Also:
        `setShowPrompt(java.lang.Boolean)`, `com.smartgwt.client.rpc.RPCManager#promptDelay`, `RpcPrompt overview and related methods`

    - #### getPromptDelay

          public int getPromptDelay()

      Overrides RPCManager.promptDelay for this request only. Defaults to `promptDelay`.

      If you're using queuing, note that the promptDelay of the first request is used for the entire queue.

      Returns:
        int
      See Also:
        `getShowPrompt()`, `com.smartgwt.client.rpc.RPCManager#promptDelay`, `RpcPrompt overview and related methods`

    - #### setPromptStyle

          public void setPromptStyle(PromptStyle promptStyle)

      Controls the prompt style for this request only. Defaults to `promptStyle`.
      Parameters:
        `promptStyle` - Default value is RPCManager.promptStyle
      See Also:
        `com.smartgwt.client.rpc.RPCManager#promptStyle`, `RpcPrompt overview and related methods`

    - #### getPromptStyle

          public PromptStyle getPromptStyle()

      Controls the prompt style for this request only. Defaults to `promptStyle`.
      Returns:
        PromptStyle
      See Also:
        `com.smartgwt.client.rpc.RPCManager#promptStyle`, `RpcPrompt overview and related methods`

    - #### setSendNoQueue

          public void setSendNoQueue(java.lang.Boolean sendNoQueue)

      When set to true, this request is sent to the server immediately, bypassing any current queue.

      Note : This is an advanced setting

      Parameters:
        `sendNoQueue` - Default value is false

    - #### getSendNoQueue

          public java.lang.Boolean getSendNoQueue()

      When set to true, this request is sent to the server immediately, bypassing any current queue.
      Returns:
        Boolean

    - #### setServerOutputAsString

          public void setServerOutputAsString(java.lang.Boolean serverOutputAsString)

      Setting this flag makes the body of the HTTP response available as a String in the `callback` as `RPCResponse.data`. This is typically only useful if you are sending a request that will not be received by the Smart GWT Java Server, however in that case, set `useSimpleHttp`:true instead, which implies `serverOutputAsString:true`.

      `serverOutputAsString:true` allows you to, for example, load the contents of static files off your webserver into a string for processing on the client with no server support. The `actionURL` must be in the same domain as the current page for this to work.

      This feature relies on the XMLHttpRequest object which can be disabled by end-users in some supported browsers. See `PlatformDependencies` for more information.

      Generally this API is used for either `non-Java backends` or for advanced usage such as content that requires processing before it can be used in Smart GWT components (such as client-side web scraping). Note that Smart GWT provides higher-level APIs for loading common types of data, see eg `HTMLFlow` for HTML content, `ViewLoader` for loading Smart GWT components, `XMLTools.loadXML()` for loading XML, `evalResult` for loading JSON, and `DataSource` for loading structured data in various formats.

      Note : This is an advanced setting

      Parameters:
        `serverOutputAsString` - Default value is false

    - #### getServerOutputAsString

          public java.lang.Boolean getServerOutputAsString()

      Setting this flag makes the body of the HTTP response available as a String in the `callback` as `RPCResponse.data`. This is typically only useful if you are sending a request that will not be received by the Smart GWT Java Server, however in that case, set `useSimpleHttp`:true instead, which implies `serverOutputAsString:true`.

      `serverOutputAsString:true` allows you to, for example, load the contents of static files off your webserver into a string for processing on the client with no server support. The `actionURL` must be in the same domain as the current page for this to work.

      This feature relies on the XMLHttpRequest object which can be disabled by end-users in some supported browsers. See `PlatformDependencies` for more information.

      Generally this API is used for either `non-Java backends` or for advanced usage such as content that requires processing before it can be used in Smart GWT components (such as client-side web scraping). Note that Smart GWT provides higher-level APIs for loading common types of data, see eg `HTMLFlow` for HTML content, `ViewLoader` for loading Smart GWT components, `XMLTools.loadXML()` for loading XML, `evalResult` for loading JSON, and `DataSource` for loading structured data in various formats.

      Returns:
        Boolean

    - #### setShowPrompt

          public void setShowPrompt(java.lang.Boolean showPrompt)

      Overrides `RPCManager.showPrompt` for this request only.

      If you're using queuing, note that if any of the requests in the queue specify showPrompt:true, then a prompt will be shown for the entire queue with the prompt text of the first request in the queue to specify a custom prompt if promptStyle is set to "dialog".

      If promptStyle is set to "cursor" for the request that specified showPrompt: true, then the entire queue uses the "cursor" style for the prompt.

      Parameters:
        `showPrompt` - Default value is null
      See Also:
        `com.smartgwt.client.rpc.RPCManager#showPrompt`, `RpcPrompt overview and related methods`

    - #### getShowPrompt

          public java.lang.Boolean getShowPrompt()

      Overrides `RPCManager.showPrompt` for this request only.

      If you're using queuing, note that if any of the requests in the queue specify showPrompt:true, then a prompt will be shown for the entire queue with the prompt text of the first request in the queue to specify a custom prompt if promptStyle is set to "dialog".

      If promptStyle is set to "cursor" for the request that specified showPrompt: true, then the entire queue uses the "cursor" style for the prompt.

      Returns:
        Boolean
      See Also:
        `com.smartgwt.client.rpc.RPCManager#showPrompt`, `RpcPrompt overview and related methods`

    - #### setSuppressAutoDraw

          public void setSuppressAutoDraw(java.lang.Boolean suppressAutoDraw)

      If `evalResult` is set, setting this property to true causes `Canvas.autoDraw` to be set to false for the duration of the result evaluation - which is generally what you want if you're returning new components from the server.

      This also effects components loaded via the `RPCManager.loadScreen()` API.

      Note : This is an advanced setting

      Parameters:
        `suppressAutoDraw` - Default value is true

    - #### getSuppressAutoDraw

          public java.lang.Boolean getSuppressAutoDraw()

      If `evalResult` is set, setting this property to true causes `Canvas.autoDraw` to be set to false for the duration of the result evaluation - which is generally what you want if you're returning new components from the server.

      This also effects components loaded via the `RPCManager.loadScreen()` API.

      Returns:
        Boolean

    - #### setTimeout

          public void setTimeout(java.lang.Integer timeout)

      Sets the timeout on this request. Default is to use `defaultTimeout`.

      If you're using `queuing`, note that the timeout setting derived from the last request in the queue is used for the entire queue. If you want to override the timeout for the queue, make sure to set your override at least on the last request in the queue.

      For the "xmlHttpRequest" `transport`, this timeout can only happen if the server actually fails to respond within the specified number of milliseconds. For the "hiddenFrame" transport, this timeout will occur for non-200 (HTTP_OK) responses.

      If `timeout` is set to zero, the RPCManager will not enforce a timeout for this request. However, note that all browsers enforce their own timeouts on HTTP requests, and may have different timeouts for different kinds of failures (no response at all from server, hung response after receiving headers, hung response after receiving partial data, etc). Also, intervening web proxies or firewalls may impose timeouts of their own.

      As a rough rule of thumb, if your server response will have a lengthy pause before data begins to be sent, 1-2 minutes is the maximum allowable pause for a public site and still may not work for a minority of users, but up to 4 minutes may be allowable in a controlled environment (intranet or extranet with well-known user base).

      Above these limits, your code should return some kind of immediate response to the browser, then kick off a server-side process to complete processing. The browser can then either poll for completion, or use a server-push notification system such as Smart GWT Real-Time Messaging (see http://smartclient.com/product).

      Note : This is an advanced setting

      Parameters:
        `timeout` - Default value is null
      See Also:
        `com.smartgwt.client.rpc.RPCManager#defaultTimeout`

    - #### getTimeout

          public java.lang.Integer getTimeout()

      Sets the timeout on this request. Default is to use `defaultTimeout`.

      If you're using `queuing`, note that the timeout setting derived from the last request in the queue is used for the entire queue. If you want to override the timeout for the queue, make sure to set your override at least on the last request in the queue.

      For the "xmlHttpRequest" `transport`, this timeout can only happen if the server actually fails to respond within the specified number of milliseconds. For the "hiddenFrame" transport, this timeout will occur for non-200 (HTTP_OK) responses.

      If `timeout` is set to zero, the RPCManager will not enforce a timeout for this request. However, note that all browsers enforce their own timeouts on HTTP requests, and may have different timeouts for different kinds of failures (no response at all from server, hung response after receiving headers, hung response after receiving partial data, etc). Also, intervening web proxies or firewalls may impose timeouts of their own.

      As a rough rule of thumb, if your server response will have a lengthy pause before data begins to be sent, 1-2 minutes is the maximum allowable pause for a public site and still may not work for a minority of users, but up to 4 minutes may be allowable in a controlled environment (intranet or extranet with well-known user base).

      Above these limits, your code should return some kind of immediate response to the browser, then kick off a server-side process to complete processing. The browser can then either poll for completion, or use a server-push notification system such as Smart GWT Real-Time Messaging (see http://smartclient.com/product).

      Returns:
        Integer
      See Also:
        `com.smartgwt.client.rpc.RPCManager#defaultTimeout`

    - #### setTransport

          public void setTransport(RPCTransport transport)

      Selects the transport used for this RPCRequest. If unset, the value of `defaultTransport` will be used.

      If you're using queueing, note that all requests in the queue must use the same transport. If you attempt to send a request via a different transport than those that are currently on the queue, it will be sent to the server separately, ahead of the queue, and a warning will be logged to the Developer Console.

      If you specify an unknown transport, an error will be logged to the DeveloperConsole and `defaultTransport` will be used instead.

      If you specify the `xmlHttpRequest` transport and it is not available, a warning will be logged to the Developer Console and the RPCManager will attempt to use the `hiddenFrame` transport instead for this request. Note that some features like `serverOutputAsString` require the `xmlHttpRequest` transport and will not work if the `xmlHttpRequest` transport is unavailable (this can happen if the end user is using Internet Explorer and has disabled ActiveX). You can check whether or not the `xmlHttpRequest` transport is currently available by calling `RPCManager.xmlHttpRequestAvailable()`.

      Note : This is an advanced setting

      Parameters:
        `transport` - Default value is RPCManager.defaultTransport
      See Also:
        `com.smartgwt.client.rpc.RPCManager#defaultTransport`

    - #### getTransport

          public RPCTransport getTransport()

      Selects the transport used for this RPCRequest. If unset, the value of `defaultTransport` will be used.

      If you're using queueing, note that all requests in the queue must use the same transport. If you attempt to send a request via a different transport than those that are currently on the queue, it will be sent to the server separately, ahead of the queue, and a warning will be logged to the Developer Console.

      If you specify an unknown transport, an error will be logged to the DeveloperConsole and `defaultTransport` will be used instead.

      If you specify the `xmlHttpRequest` transport and it is not available, a warning will be logged to the Developer Console and the RPCManager will attempt to use the `hiddenFrame` transport instead for this request. Note that some features like `serverOutputAsString` require the `xmlHttpRequest` transport and will not work if the `xmlHttpRequest` transport is unavailable (this can happen if the end user is using Internet Explorer and has disabled ActiveX). You can check whether or not the `xmlHttpRequest` transport is currently available by calling `RPCManager.xmlHttpRequestAvailable()`.

      Returns:
        RPCTransport
      See Also:
        `com.smartgwt.client.rpc.RPCManager#defaultTransport`

    - #### setUseHttpProxy

          public void setUseHttpProxy(java.lang.Boolean useHttpProxy)

      Indicates whether this request should use the HttpProxyServlet in order to enable contacting hosts other than the origin server (available only in Pro Edition or better).

      When various UI components issues requests automatically, or when a call to `RPCManager.sendProxied()` is made, the HttpProxy will automatically be used for a URL that starts with "http" and uses a hostname other than "localhost" or `window.location.hostname`, or if the port number differs.

      `rpcRequest.useHttpProxy` should only be used to force requests to go through the HttpProxy when the above rules don't work, or to avoid using the HttpProxy when contacting hosts that allow cross-site calls via the Http Access Control standard.

      You can also set `useHttpProxy`:false to avoid ever using the HttpProxyServlet.

      Parameters:
        `useHttpProxy` - Default value is null

    - #### getUseHttpProxy

          public java.lang.Boolean getUseHttpProxy()

      Indicates whether this request should use the HttpProxyServlet in order to enable contacting hosts other than the origin server (available only in Pro Edition or better).

      When various UI components issues requests automatically, or when a call to `RPCManager.sendProxied()` is made, the HttpProxy will automatically be used for a URL that starts with "http" and uses a hostname other than "localhost" or `window.location.hostname`, or if the port number differs.

      `rpcRequest.useHttpProxy` should only be used to force requests to go through the HttpProxy when the above rules don't work, or to avoid using the HttpProxy when contacting hosts that allow cross-site calls via the Http Access Control standard.

      You can also set `useHttpProxy`:false to avoid ever using the HttpProxyServlet.

      Returns:
        Boolean

    - #### setUseSimpleHttp

          public void setUseSimpleHttp(java.lang.Boolean useSimpleHttp)

      When set to true, assume the request is not going to the Smart GWT server, and hence send a simple HTTP request that does not use Smart GWT-specific request encoding.

      Values specified in `params` are sent to to the server as HTTP request parameters. If `httpMethod` is "GET", parameters appear in the request URL, otherwise if httpMethod is "POST", parameters are encoded in the request body (exactly like an HTML form does). These parameters are then accessible via typical server-side APIs for retrieving HTTP parameters, eg, servletRequest.getParameter(paramName) in Java Servlets.

      Note that if `httpMethod` method is POST and `data` is supplied, `data` is assumed to be a string to post as the HTTP request body, and `params` are sent as URL parameters instead. This usage is for sending custom request bodies such as the XML payloads used for SOAP. In this case, `contentType` is typically also set to indicate the content type of the request body.

      Setting `useSimpleHttp` to true also automatically sets `serverOutputAsString` to true as well.

      Note : This is an advanced setting

      Parameters:
        `useSimpleHttp` - Default value is false

    - #### getUseSimpleHttp

          public java.lang.Boolean getUseSimpleHttp()

      When set to true, assume the request is not going to the Smart GWT server, and hence send a simple HTTP request that does not use Smart GWT-specific request encoding.

      Values specified in `params` are sent to to the server as HTTP request parameters. If `httpMethod` is "GET", parameters appear in the request URL, otherwise if httpMethod is "POST", parameters are encoded in the request body (exactly like an HTML form does). These parameters are then accessible via typical server-side APIs for retrieving HTTP parameters, eg, servletRequest.getParameter(paramName) in Java Servlets.

      Note that if `httpMethod` method is POST and `data` is supplied, `data` is assumed to be a string to post as the HTTP request body, and `params` are sent as URL parameters instead. This usage is for sending custom request bodies such as the XML payloads used for SOAP. In this case, `contentType` is typically also set to indicate the content type of the request body.

      Setting `useSimpleHttp` to true also automatically sets `serverOutputAsString` to true as well.

      Returns:
        Boolean

    - #### setWillHandleError

          public void setWillHandleError(java.lang.Boolean willHandleError)

      With willHandleError:false, rpcResponses that indicate an error go through centralized handling in the RPCManager and rpcRequest.callback is never invoked.

      Setting willHandleError:true means that your rpcRequest.callback will receive rpcResponses that have an error status and must handle them.

      See also the error handling section in the `RPCManager` docs.

      Parameters:
        `willHandleError` - Default value is false
      See Also:
        `RPCManager`, `ErrorHandling overview and related methods`

    - #### getWillHandleError

          public java.lang.Boolean getWillHandleError()

      With willHandleError:false, rpcResponses that indicate an error go through centralized handling in the RPCManager and rpcRequest.callback is never invoked.

      Setting willHandleError:true means that your rpcRequest.callback will receive rpcResponses that have an error status and must handle them.

      See also the error handling section in the `RPCManager` docs.

      Returns:
        Boolean
      See Also:
        `RPCManager`, `ErrorHandling overview and related methods`

    - #### setWithCredentials

          public void setWithCredentials(java.lang.Boolean withCredentials)

      In browsers that support Cross-Origin Resource Sharing and XMLHttpRequest 2, and where the service at the `actionURL` allows the origin to send credentials (see `Access-Control-Allow-Credentials`), should user credentials such as cookies, HTTP authentication, and client-side SSL certificates be sent with the actual CORS request?

      This setting only applies when the request `transport` is `RPCTransport.XMLHTTPREQUEST`.

      Note that Internet Explorer 10 and 11 do not send cookies as part of user credentials: IE10 doesn't support cookies on cross origin XMLHttpRequest withCredentials=true.

      Note : This is an advanced setting

      Parameters:
        `withCredentials` - Default value is null

    - #### getWithCredentials

          public java.lang.Boolean getWithCredentials()

      In browsers that support Cross-Origin Resource Sharing and XMLHttpRequest 2, and where the service at the `actionURL` allows the origin to send credentials (see `Access-Control-Allow-Credentials`), should user credentials such as cookies, HTTP authentication, and client-side SSL certificates be sent with the actual CORS request?

      This setting only applies when the request `transport` is `RPCTransport.XMLHTTPREQUEST`.

      Note that Internet Explorer 10 and 11 do not send cookies as part of user credentials: IE10 doesn't support cookies on cross origin XMLHttpRequest withCredentials=true.

      Returns:
        Boolean

    - #### create

          public static void create()

      RPCRequest shouldn't be created directly. Instead, pass Properties to `RPCManager.sendRequest()` and `RPCManager.send()`.

    - #### setData

          public void setData(com.google.gwt.core.client.JavaScriptObject data)

      This attribute specifies the payload of the RPCRequest. When using the `Smart GWT server`, objects sent to the server as `request.data` will be available on the server-side `RPCRequest` object as Java Objects. This is achieved by serializing the client side data in a JSON type format and generating Java Objects on the server from this serialized data.

      If the client side `request.data` is set to a Java object in your SmartGWT code on the client side, logic in your server side code will be passed the following equivalent objects:

      Client | Server Type
      boolean primitive or Boolean | Boolean
      Non-fractional numeric value (e.g: int, Integer, long, Long) | Long
      Fractional numeric value (e.g:float, Float, double, Double) | Double
      String | String
      Date | Date
      List, Set, Iterator | List
      Map | Map
      Record | Map
      RecordList | List of Map
      ResultSet | List of Map (containing only loaded rows if the ResultSet has a partial cache on the client)

      Note that the order of keys/values in the Maps created on the server is not guaranteed because JavaScript Object literals do not guarantee order.

      Server->client conversion follows this table as well, with some extras. See the toJS() method on JSTranslater in the server documentation for a description of additional behaviors.

      When not communicating with the Smart GWT server, `rpcRequest.data` becomes simple HTTP parameters or an HTTP request body - see `useSimpleHttp` for details.

      Parameters:
        `data` - data Default value is null
      See Also:
        `RPCResponse.getDataAsMap()`, `RPCResponse.getDataAsObject()`, `RPCResponse.getDataAsString()`

    - #### getData

          public com.google.gwt.core.client.JavaScriptObject getData()

      Returns the payload of this request to be sent to the server, as a JavaScriptObject.

      When using the `Smart GWT server`, objects sent to the server as `request.data` will be available on the server-side `RPCRequest` object as Java Objects. This is achieved by serializing the client side data in a JSON type format and generating Java Objects on the server from this serialized data.

      If the client side `request.data` is set to a Java object in your SmartGWT code on the client side, logic in your server side code will be passed the following equivalent objects:

      Client | Server Type
      boolean primitive or Boolean | Boolean
      Non-fractional numeric value (e.g: int, Integer, long, Long) | Long
      Fractional numeric value (e.g:float, Float, double, Double) | Double
      String | String
      Date | Date
      List, Set, Iterator | List
      Map | Map
      Record | Map
      RecordList | List of Map
      ResultSet | List of Map (containing only loaded rows if the ResultSet has a partial cache on the client)

      Note that the order of keys/values in the Maps created on the server is not guaranteed because JavaScript Object literals do not guarantee order.

      Server->client conversion follows this table as well, with some extras. See the toJS() method on JSTranslater in the server documentation for a description of additional behaviors.

      When not communicating with the Smart GWT server, `rpcRequest.data` becomes simple HTTP parameters or an HTTP request body - see `useSimpleHttp` for details.

      See Also:
        `RPCResponse.getDataAsMap()`, `RPCResponse.getDataAsObject()`, `RPCResponse.getDataAsString()`

    - #### getDataAsString

          public java.lang.String getDataAsString()