IHttpRequestを使用して、メッセージを作成する必要があるサービスに要求を送信しています。 進行中の手順は、サービスから要求を受信するまで保持されますが、続行する必要があります。 (原則火と忘れ)進行中に応答なしでHttpRequestを送信するOpenEdge
これは私がサービスに電話をかけるために使用するクラスです:
USING Progress.Lang.*.
USING OpenEdge.Net.HTTP.ClientBuilder.
USING OpenEdge.Net.HTTP.IHttpRequest.
USING OpenEdge.Net.HTTP.IHttpResponse.
USING OpenEdge.Net.HTTP.RequestBuilder.
USING Progress.Json.ObjectModel.JsonObject.
BLOCK-LEVEL ON ERROR UNDO, THROW.
CLASS TOOLS.externals.zato.SendDesadv:
DEFINE VARIABLE baseURL AS CHARACTER NO-UNDO.
DEFINE VARIABLE servicePath AS CHARACTER NO-UNDO INITIAL send/json".
DEFINE VARIABLE serviceURL AS CHARACTER NO-UNDO.
DEFINE VARIABLE oRequest AS IHttpRequest NO-UNDO.
DEFINE VARIABLE oResponse AS IHttpResponse NO-UNDO.
DEFINE VARIABLE input_json AS JsonObject NO-UNDO.
CONSTRUCTOR PUBLIC SendDesadv (INPUT wave_nr AS INTEGER):
input_json = NEW JsonObject().
input_json:Add("wave_nr", wave_nr).
invokeZato(input_json).
END CONSTRUCTOR.
METHOD PUBLIC VOID invokeService(INPUT input_json AS JsonObject):
setServiceUrl().
SESSION:DEBUG-ALERT = TRUE.
oRequest = RequestBuilder:Put(serviceURL, input_json)
:AcceptJson()
:REQUEST.
oResponse = ClientBuilder:Build():Client:Execute(oRequest).
END METHOD.
METHOD PUBLIC VOID setBaseUrl():
IF LENGTH(PDBNAME(2)) = 3
THEN baseURL = "http://foo".
ELSE baseURL = "http://bar".
END METHOD.
METHOD PUBLIC VOID setServiceUrl():
setBaseUrl().
serviceUrl = baseUrl + servicePath.
END METHOD.
END CLASS.
私はすでに、ちょうどそれのうちoResponse = ClientBuilder:Build():Client:Execute(oRequest).
を残すことを試みたが、その後何も送信されません。
ここで「火と忘れ」の原則をどのように使うことができますか?
ありがとうございます。