GMI / iOS Web Services limitations

Some Web Services classes are not supported on iOS devices (GMI).

Web Services COM package

The following com classes are not supported in GMI:

The following methods have a different behavior:

Web Services XML package

The following xml classes are not supported in GMI:

Note: These classes are currently not supported on iOS, as OpenSSL cannot be used to implement these classes on iOS. OpenSSL is used to implement these classes for other platforms.
  • xml.CryptoKey
  • xml.CryptoX509
  • xml.Signature
  • xml.Encryption
  • xml.KeyStore

For all other classes of the xml package, methods using an URL parameter accept only a file URI:

If the parameter is not a file URI, these methods can raise runtime exceptions such as -15629, -15630, -15632, -15633.

SOAP protocol

GMI is not able to handle SOAP errors or faults, as the iOS API does not allow a retrieval of an HTTP response body if the server uses an HTTP code of 500. As a result, GMI will not get notified about what went wrong during a remote procedure call.

If the server returns a SOAP error or fault, GMI will raise exception -15559. Modify your call of a remote web service as follows:
DEFINE wsstatus INTEGER
...
   LET wsstatus = Webservice_Function_g()
   IF wsstatus==-15559 THEN
      MESSAGE "Handle generic SOAP error or fault"
   END IF

Web Services configuration options

GWS configuration entries of FGLPROFILE are not supported on iOS.

FGLPROFILE entries are described here: FGLPROFILE entries.

Long running HTTP request popup

If the com.HTTPRequest.getResponse()/getAsyncResponse() methods take more than 5 seconds to complete, the GMI will show a typical iOS popup message to ask the user if the request must be canceled. If the user cancels the request, the runtime system raises an exception. A progress bar is displayed if the Content-Length for a request is available (i.e. self made uploads and most downloads)

HTTP request compression for POST/PUT

HTTP request compression for POST/PUT is not supported on iOS devices.

Multipart HTTP request

On iOS, multipart HTTP requests are not supported. See com.HTTPRequest.setMultipartType.

Changing the SOAP client behavior at runtime

The following features have a limited usage on iOS devices:

FGLPROFILE settings for Web Services client