eglx.http defines an API for accessing details in HTTP messages.
enumeration HttpMethod _GET = 1, POST = 2, _DELETE = 3, PUT = 4 end |
externalType IHttp type NativeType private constructor(); function getRequest() returns (eglx.http.Request); function getResponse() returns (eglx.http.Response); end |
externalType HttpProxy extends HttpRest type NativeType constructor(); constructor(serviceName string in); end |
externalType HttpRest extends IHttp type NativeType constructor(); request Request{@Property {}}; response Response{@Property {}}; restType eglx.rest.ServiceType?; end |
handler Request uri string?; // Complete URL, encoded for HTTP use method HttpMethod?; // Method being invoked. Default is _GET. encoding Encoding?; // As described in relation to the eglx.services package. charset string?; // character encoding; for example, "UTF-8". contentType string?; // content type; for example, "text/html". headers dictionary?; // each entry identifies a header name and content. body string?; // content of transported message.end You
can use an EGL-specific HTTP request header to give a service timeout
value, which specifies the maximum valid number of seconds that elapse
between two events:
The header is edt.proxy.invocation.timeout. For
example, the following code ends the service connection if the proxy
does not receive a response in 6 seconds:
myBindingVar HttpRest?{@Resource {uri="binding:myEntry"}}; myBindingVar.request.headers = new dictionary; myBindingVar.request.headers["edt.proxy.invocation.timeout"] = 6; call MyInterfaceType.myOperation("My input") using myBindingVar returning to myResponseHandler onException myExceptionHandler; If the response takes longer than the specified maximum, the EGL Runtime throws a ServiceInvocationException. Setting
a timeout is partly a matter of trial and error:
The default is an infinite wait. |
handler Response status int?; statusMessage string?; encoding Encoding?; charset string?; contentType string?; headers dictionary?; body string?; end |
interface IHttp function getRequest() returns (eglx.http.Request); function getResponse() returns (eglx.http.Response); end |
HTTPLib external type |
Target | Issue |
---|---|
Java | See type-specific topics. |
JavaScript | See type-specific topics. |