boost::shared_ptr<Response> Client::fetch(std::string verb, Client::header_type hdr, std::string payload) { Handler handler; struct mg_mgr mgr; int i; //memset(&mgr, 0, sizeof(struct mg_mgr)); mg_mgr_init(&mgr, NULL); std::stringstream headers; BOOST_FOREACH(const header_type::value_type &v, hdr) { headers << v.first << ": " << v.second << "\r\n"; } mg_connection *nc = mg_connect_http(&mgr, &Handler::ev_handler, url_.c_str(), verb.c_str(), headers.str().c_str(), payload.c_str()); nc->user_data = &handler; while (!handler.is_done()) { mg_mgr_poll(&mgr, 1000); } mg_mgr_free(&mgr); return handler.response; }