comparison OrthancStone/Sources/Toolbox/OrthancDatasets/OrthancHttpConnection.cpp @ 1512:244ad1e4e76a

reorganization of folders
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 07 Jul 2020 16:21:02 +0200
parents Framework/Toolbox/OrthancDatasets/OrthancHttpConnection.cpp@d8af188ab545
children 4fb8fdf03314
comparison
equal deleted inserted replaced
1511:9dfeee74c1e6 1512:244ad1e4e76a
1 /**
2 * Stone of Orthanc
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
4 * Department, University Hospital of Liege, Belgium
5 * Copyright (C) 2017-2020 Osimis S.A., Belgium
6 *
7 * This program is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU Affero General Public License
9 * as published by the Free Software Foundation, either version 3 of
10 * the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Affero General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 **/
20
21
22 #include "OrthancHttpConnection.h"
23
24 namespace OrthancStone
25 {
26 void OrthancHttpConnection::Setup()
27 {
28 url_ = client_.GetUrl();
29
30 // Don't follow 3xx HTTP (avoid redirections to "unsupported.png" in Orthanc)
31 client_.SetRedirectionFollowed(false);
32 }
33
34
35 OrthancHttpConnection::OrthancHttpConnection() :
36 client_(Orthanc::WebServiceParameters(), "")
37 {
38 Setup();
39 }
40
41
42 OrthancHttpConnection::OrthancHttpConnection(const Orthanc::WebServiceParameters& parameters) :
43 client_(parameters, "")
44 {
45 Setup();
46 }
47
48
49 void OrthancHttpConnection::RestApiGet(std::string& result,
50 const std::string& uri)
51 {
52 boost::mutex::scoped_lock lock(mutex_);
53
54 client_.SetMethod(Orthanc::HttpMethod_Get);
55 client_.SetUrl(url_ + uri);
56 client_.ApplyAndThrowException(result);
57 }
58
59
60 void OrthancHttpConnection::RestApiPost(std::string& result,
61 const std::string& uri,
62 const std::string& body)
63 {
64 boost::mutex::scoped_lock lock(mutex_);
65
66 client_.SetMethod(Orthanc::HttpMethod_Post);
67 client_.SetUrl(url_ + uri);
68 client_.SetBody(body);
69 client_.ApplyAndThrowException(result);
70 }
71
72
73 void OrthancHttpConnection::RestApiPut(std::string& result,
74 const std::string& uri,
75 const std::string& body)
76 {
77 boost::mutex::scoped_lock lock(mutex_);
78
79 client_.SetMethod(Orthanc::HttpMethod_Put);
80 client_.SetUrl(url_ + uri);
81 client_.SetBody(body);
82 client_.ApplyAndThrowException(result);
83 }
84
85
86 void OrthancHttpConnection::RestApiDelete(const std::string& uri)
87 {
88 boost::mutex::scoped_lock lock(mutex_);
89
90 std::string result;
91
92 client_.SetMethod(Orthanc::HttpMethod_Delete);
93 client_.SetUrl(url_ + uri);
94 client_.ApplyAndThrowException(result);
95 }
96 }