comparison OrthancServer/Plugins/Engine/OrthancPlugins.cpp @ 4650:9804d6490872

Reduced memory consumption of HTTP/REST plugins calls on POST/PUT if chunked transfer is disabled
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 04 May 2021 10:57:42 +0200
parents 5fabef29c4ff
children f0038043fb97 94616af363ec
comparison
equal deleted inserted replaced
4649:e915102093de 4650:9804d6490872
3330 client.SetMethod(HttpMethod_Get); 3330 client.SetMethod(HttpMethod_Get);
3331 break; 3331 break;
3332 3332
3333 case OrthancPluginHttpMethod_Post: 3333 case OrthancPluginHttpMethod_Post:
3334 client.SetMethod(HttpMethod_Post); 3334 client.SetMethod(HttpMethod_Post);
3335 client.GetBody().assign(reinterpret_cast<const char*>(parameters.body), parameters.bodySize); 3335 client.SetExternalBody(parameters.body, parameters.bodySize);
3336 break; 3336 break;
3337 3337
3338 case OrthancPluginHttpMethod_Put: 3338 case OrthancPluginHttpMethod_Put:
3339 client.SetMethod(HttpMethod_Put); 3339 client.SetMethod(HttpMethod_Put);
3340 client.GetBody().assign(reinterpret_cast<const char*>(parameters.body), parameters.bodySize); 3340 client.SetExternalBody(parameters.body, parameters.bodySize);
3341 break; 3341 break;
3342 3342
3343 case OrthancPluginHttpMethod_Delete: 3343 case OrthancPluginHttpMethod_Delete:
3344 client.SetMethod(HttpMethod_Delete); 3344 client.SetMethod(HttpMethod_Delete);
3345 break; 3345 break;
3444 HttpClient client; 3444 HttpClient client;
3445 3445
3446 if (p.method == OrthancPluginHttpMethod_Post || 3446 if (p.method == OrthancPluginHttpMethod_Post ||
3447 p.method == OrthancPluginHttpMethod_Put) 3447 p.method == OrthancPluginHttpMethod_Put)
3448 { 3448 {
3449 client.GetBody().assign(reinterpret_cast<const char*>(p.body), p.bodySize); 3449 client.SetExternalBody(p.body, p.bodySize);
3450 } 3450 }
3451 3451
3452 SetupHttpClient(client, p); 3452 SetupHttpClient(client, p);
3453 ExecuteHttpClientWithoutChunkedBody(*p.httpStatus, p.answerBody, p.answerHeaders, client); 3453 ExecuteHttpClientWithoutChunkedBody(*p.httpStatus, p.answerBody, p.answerHeaders, client);
3454 } 3454 }
3643 client.SetMethod(HttpMethod_Get); 3643 client.SetMethod(HttpMethod_Get);
3644 break; 3644 break;
3645 3645
3646 case OrthancPluginHttpMethod_Post: 3646 case OrthancPluginHttpMethod_Post:
3647 client.SetMethod(HttpMethod_Post); 3647 client.SetMethod(HttpMethod_Post);
3648 client.GetBody().assign(reinterpret_cast<const char*>(p.body), p.bodySize); 3648 client.SetExternalBody(p.body, p.bodySize);
3649 break; 3649 break;
3650 3650
3651 case OrthancPluginHttpMethod_Put: 3651 case OrthancPluginHttpMethod_Put:
3652 client.SetMethod(HttpMethod_Put); 3652 client.SetMethod(HttpMethod_Put);
3653 client.GetBody().assign(reinterpret_cast<const char*>(p.body), p.bodySize); 3653 client.SetExternalBody(p.body, p.bodySize);
3654 break; 3654 break;
3655 3655
3656 case OrthancPluginHttpMethod_Delete: 3656 case OrthancPluginHttpMethod_Delete:
3657 client.SetMethod(HttpMethod_Delete); 3657 client.SetMethod(HttpMethod_Delete);
3658 break; 3658 break;