29 #include <boost/utility/string_ref.hpp> 41 template<
class t_request,
class t_response,
class t_transport>
42 bool invoke_http_json(
const boost::string_ref
uri,
const t_request& out_struct, t_response& result_struct, t_transport&
transport, std::chrono::milliseconds timeout = std::chrono::seconds(15),
const boost::string_ref method =
"POST")
49 additional_params.push_back(std::make_pair(
"Content-Type",
"application/json; charset=utf-8"));
52 if(!
transport.invoke(
uri, method, req_param, timeout, std::addressof(pri),
std::move(additional_params)))
54 LOG_PRINT_L1(
"Failed to invoke http request to " <<
uri);
60 LOG_PRINT_L1(
"Failed to invoke http request to " <<
uri <<
", internal error (null response ptr)");
66 LOG_PRINT_L1(
"Failed to invoke http request to " <<
uri <<
", wrong response code: " << pri->
m_response_code);
75 template<
class t_request,
class t_response,
class t_transport>
76 bool invoke_http_bin(
const boost::string_ref
uri,
const t_request& out_struct, t_response& result_struct, t_transport&
transport, std::chrono::milliseconds timeout = std::chrono::seconds(15),
const boost::string_ref method =
"POST")
83 if(!
transport.invoke(
uri, method, boost::string_ref{reinterpret_cast<const char*>(req_param.data()), req_param.size()}, timeout, std::addressof(pri)))
85 LOG_PRINT_L1(
"Failed to invoke http request to " <<
uri);
91 LOG_PRINT_L1(
"Failed to invoke http request to " <<
uri <<
", internal error (null response ptr)");
97 LOG_PRINT_L1(
"Failed to invoke http request to " <<
uri <<
", wrong response code: " << pri->
m_response_code);
109 template<
class t_request,
class t_response,
class t_transport>
116 req_t.
params = out_struct;
125 error_struct = resp_t.
error;
126 LOG_ERROR(
"RPC call of \"" << req_t.
method <<
"\" returned error: " << resp_t.
error.
code <<
", message: " << resp_t.
error.
message);
129 result_struct = resp_t.
result;
133 template<
class t_request,
class t_response,
class t_transport>
140 template<
class t_command,
class t_transport>
141 bool invoke_http_json_rpc(
const boost::string_ref
uri,
typename t_command::request& out_struct,
typename t_command::response& result_struct, t_transport&
transport, std::chrono::milliseconds timeout = std::chrono::seconds(15),
const boost::string_ref
http_method =
"POST",
const std::string& req_id =
"0")
std::list< std::pair< std::string, std::string > > fields_list
Definition: http_base.h:66
int64_t code
Definition: jsonrpc_structs.h:33
bool store_t_to_binary(t_struct &str_in, byte_slice &binary_buff, size_t initial_buffer_size=8192)
Definition: portable_storage_template_helper.h:118
std::string jsonrpc
Definition: jsonrpc_structs.h:16
Definition: jsonrpc_structs.h:31
epee::serialization::storage_entry id
Definition: jsonrpc_structs.h:18
::std::string string
Definition: gtest-port.h:1097
http_method
Definition: http_base.h:48
bool invoke_http_json_rpc(const boost::string_ref uri, std::string method_name, const t_request &out_struct, t_response &result_struct, epee::json_rpc::error &error_struct, t_transport &transport, std::chrono::milliseconds timeout=std::chrono::seconds(15), const boost::string_ref http_method="POST", const std::string &req_id="0")
Definition: http_abstract_invoke.h:110
bool invoke_http_json(const boost::string_ref uri, const t_request &out_struct, t_response &result_struct, t_transport &transport, std::chrono::milliseconds timeout=std::chrono::seconds(15), const boost::string_ref method="POST")
Definition: http_abstract_invoke.h:42
const char * method_name
Definition: daemon_handler.cpp:55
bool store_t_to_json(t_struct &str_in, std::string &json_buff, size_t indent=0, bool insert_newlines=true)
Definition: portable_storage_template_helper.h:66
std::string method
Definition: jsonrpc_structs.h:17
bool load_t_from_json(t_struct &out, const std::string &json_buff)
Definition: portable_storage_template_helper.h:45
Definition: http_base.h:162
std::string message
Definition: jsonrpc_structs.h:34
Definition: byte_slice.h:68
int m_response_code
Definition: http_base.h:164
Definition: jsonrpc_structs.h:14
TODO: (mj-xmr) This will be reduced in an another PR.
Definition: byte_slice.h:39
const T & move(const T &t)
Definition: gtest-port.h:1317
t_error error
Definition: jsonrpc_structs.h:62
#define AUTO_VAL_INIT(v)
Definition: misc_language.h:36
std::string m_body
Definition: http_base.h:167
t_param result
Definition: jsonrpc_structs.h:60
t_param params
Definition: jsonrpc_structs.h:19
bool load_t_from_binary(t_struct &out, const epee::span< const uint8_t > binary_buff, const epee::serialization::portable_storage::limits_t *limits=NULL)
Definition: portable_storage_template_helper.h:91
Definition: portable_storage.h:52
bool invoke_http_bin(const boost::string_ref uri, const t_request &out_struct, t_response &result_struct, t_transport &transport, std::chrono::milliseconds timeout=std::chrono::seconds(15), const boost::string_ref method="POST")
Definition: http_abstract_invoke.h:76
std::shared_ptr< Transport > transport(const std::string &path)
Definition: transport.cpp:1231
Definition: jsonrpc_structs.h:57