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).
를 떠나 시도했다, 그러나 아무것도 전송하지 않습니다 : (화재 및 원칙을 잊지는)
이 나는 서비스에 전화를 걸 때 사용하는 클래스입니다.
여기서 "불과 잊음"원칙을 어떻게 사용할 수 있습니까?
미리 감사드립니다.