Skip to main content

@FormData

The @FormData annotation can be applied to arguments of @RemoteOp-annotated methods to denote that they are form-data parameters on the request.

@FormDataname - Form data entry name.serializer - Override the part serializer.
Example
@Remote(path="/myproxy")
public interface MyProxy {

// Explicit names specified for form data parameters.
@RemotePost
String postParameters(
@FormData("foo") String foo,
@FormData("bar") MyPojo pojo
);

// Multiple values pulled from a PartList object.
// Name "*" is inferred.
@RemotePost
String postPartList(@FormData PartList partList);

// Multiple values pulled from a Map.
@RemotePost
String postMap(@FormData Map map);

// Multiple values pulled from a bean.
@RemotePost
String postBean(@FormData MyBean bean);

// An entire form-data HTTP body as a String.
@RemotePost
String postString(@FormData String string);

// An entire form-data HTTP body as a Reader.
@RemotePost
String postReader(@FormData Reader reader);
}

Form data arguments can be any of the following types:

  • Single-part arguments (i.e. those with name != "*"):

  • Multi-part arguments (i.e. those with name == "*" or empty):

    • Reader - Raw contents of Reader will be serialized to remote resource.
    • InputStream - Raw contents of InputStream will be serialized to remote resource.
    • PartList - Converted to a URL-encoded FORM post.
    • Map<String,Object> - Converted to key-value pairs. Values serialized using the registered HttpPartSerializer (OpenApiSerializer by default).
    • Bean - Converted to key-value pairs. Values serialized using the registered HttpPartSerializer (OpenApiSerializer by default).
    • CharSequence - Used directly as an application/x-www-form-urlencoded entity. See the link below for information about supported data types in OpenAPI serialization.