Methods are invoked with the JSON protocol by sending a POST request with the method name in the URL and the method parameters in the body of the request.
The request body for a method invocation is a single JSON object containing the method parameters as named objects or arrays. For instance, a request body for the MoveIntoFolder_Task
method might look like this:
{'list': [ {'_typeName': 'ManagedObjectReference', 'type': 'VirtualMachine', 'value': 'vm-23'}, {'_typeName': 'ManagedObjectReference', 'type': 'VirtualMachine', 'value': 'vm-96'}, {'_typeName': 'ManagedObjectReference', 'type': 'VirtualApp', 'value': 'resgroup-v44'} ] }
The method name itself becomes part of the URL, as described in Building JSON Request URLs.
Note: Use the WSDL forms of type names. WSDL names are shown in the
vSphere Web Services API reference. For example, use the WSDL name
ApplyHostProfileConfigurationSpec
, rather than the package name
vim.profile.host.ProfileManager.ApplyHostConfigSpec
, to build a data object as a parameter to the method
ApplyEntitiesConfig_Task
. Similarly, use the method's WSDL name,
ApplyEntitiesConfig_Task
, rather than the source name,
applyEntitiesConfiguration
.