comparison Platforms/Generic/WebServicePostCommand.cpp @ 309:14ef1227120f am-callable-and-promise

web services: better handling of failures
author am@osimis.io
date Fri, 28 Sep 2018 15:02:43 +0200
parents 547e1cf7aa7b
children aee3d7941c9b
comparison
equal deleted inserted replaced
307:be2660b6e40a 309:14ef1227120f
29 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallback, // takes ownership 29 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallback, // takes ownership
30 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback, // takes ownership 30 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback, // takes ownership
31 const Orthanc::WebServiceParameters& parameters, 31 const Orthanc::WebServiceParameters& parameters,
32 const std::string& uri, 32 const std::string& uri,
33 const IWebService::Headers& headers, 33 const IWebService::Headers& headers,
34 unsigned int timeoutInSeconds,
34 const std::string& body, 35 const std::string& body,
35 Orthanc::IDynamicObject* payload /* takes ownership */, 36 Orthanc::IDynamicObject* payload /* takes ownership */,
36 NativeStoneApplicationContext& context) : 37 NativeStoneApplicationContext& context) :
37 WebServiceCommandBase(broker, successCallback, failureCallback, parameters, uri, headers, payload, context), 38 WebServiceCommandBase(broker, successCallback, failureCallback, parameters, uri, headers, timeoutInSeconds, payload, context),
38 body_(body) 39 body_(body)
39 { 40 {
40 } 41 }
41 42
42 void WebServicePostCommand::Execute() 43 void WebServicePostCommand::Execute()
43 { 44 {
44 Orthanc::HttpClient client(parameters_, uri_); 45 Orthanc::HttpClient client(parameters_, uri_);
45 client.SetTimeout(60); 46 client.SetTimeout(timeoutInSeconds_);
46 client.SetMethod(Orthanc::HttpMethod_Post); 47 client.SetMethod(Orthanc::HttpMethod_Post);
47 client.GetBody().swap(body_); 48 client.GetBody().swap(body_);
48 49
49 for (IWebService::Headers::const_iterator it = headers_.begin(); it != headers_.end(); it++ ) 50 for (IWebService::Headers::const_iterator it = headers_.begin(); it != headers_.end(); it++ )
50 { 51 {