未验证 提交 379cb1a9 编写于 作者: K Kevin Heifner 提交者: GitHub

Merge pull request #3850 from EOSIO/cleos-print-request

cleos --print-request #3849
......@@ -101,10 +101,12 @@ namespace eosio { namespace client { namespace http {
}
fc::variant do_http_call( const connection_param& cp,
const fc::variant& postdata ) {
const fc::variant& postdata,
bool print_request ) {
std::string postjson;
if( !postdata.is_null() )
postjson = fc::json::to_string( postdata );
if( !postdata.is_null() ) {
postjson = print_request ? fc::json::to_pretty_string( postdata ) : fc::json::to_string( postdata );
}
boost::asio::io_service io_service;
......@@ -120,14 +122,23 @@ namespace eosio { namespace client { namespace http {
request_stream << "content-length: " << postjson.size() << "\r\n";
request_stream << "Accept: */*\r\n";
request_stream << "Connection: close\r\n";
request_stream << "\r\n";
// append more customized headers
std::vector<string>::iterator itr;
for (itr = cp.headers.begin(); itr != cp.headers.end(); itr++) {
request_stream << *itr << "\r\n";
}
request_stream << "\r\n";
request_stream << postjson;
if ( print_request ) {
string s(request.size(), '\0');
buffer_copy(boost::asio::buffer(s), request.data());
std::cerr << "REQUEST:" << std::endl
<< "---------------------" << std::endl
<< s << std::endl
<< "---------------------" << std::endl;
}
unsigned int status_code;
std::string re;
......
......@@ -30,7 +30,8 @@ namespace eosio { namespace client { namespace http {
parsed_url parse_url( const string& server_url );
fc::variant do_http_call( const connection_param& cp,
const fc::variant& postdata = fc::variant() );
const fc::variant& postdata = fc::variant(),
bool print_request = false );
const string chain_func_base = "/v1/chain";
const string get_info_func = chain_func_base + "/get_info";
......
......@@ -161,6 +161,7 @@ bool tx_force_unique = false;
bool tx_dont_broadcast = false;
bool tx_skip_sign = false;
bool tx_print_json = false;
bool print_request = false;
uint8_t tx_max_cpu_usage = 0;
uint32_t tx_max_net_usage = 0;
......@@ -214,7 +215,7 @@ fc::variant call( const std::string& url,
eosio::client::http::connection_param *cp = new eosio::client::http::connection_param((std::string&)url, (std::string&)path,
no_verify ? false : true, headers);
return eosio::client::http::do_http_call( *cp, fc::variant(v) );
return eosio::client::http::do_http_call( *cp, fc::variant(v), print_request );
}
catch(boost::system::system_error& e) {
if(url == ::url)
......@@ -1548,6 +1549,7 @@ int main( int argc, char** argv ) {
bool verbose_errors = false;
app.add_flag( "-v,--verbose", verbose_errors, localized("output verbose actions on error"));
app.add_flag("--print-request", print_request, localized("print HTTP request to STDERR"));
auto version = app.add_subcommand("version", localized("Retrieve version information"), false);
version->require_subcommand();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册