bool http_servlet::reply_json(acl::HttpServletRequest&, acl::HttpServletResponse& res, int status, const acl::string& data) { res.setStatus(status) .setContentType("text/json; charset=utf-8") .setContentLength(data.size()); return res.write(data, data.size()) && res.write(NULL, 0); }
bool http_servlet::reply(acl::HttpServletRequest&, acl::HttpServletResponse& res, int status, const acl::string& buf) { res.setStatus(status) .setContentType("text/plain; charset=utf-8") .setContentLength(buf.size()); return res.write(buf, buf.size()) && res.write(NULL, 0); }
void http_client::do_reply(int status, const char* cmd, const acl::string& body, bool save) { HTTP_HDR_RES* hdr_res = http_hdr_res_static(status); http_hdr_set_keepalive(hdr_req_, hdr_res); http_hdr_put_str(&hdr_res->hdr, "Content-Type", "text/json"); http_hdr_put_int(&hdr_res->hdr, "Content-Length", (int) body.size()); acl::string buf(body.size() + 256); http_hdr_build(&hdr_res->hdr, buf.vstring()); http_hdr_res_free(hdr_res); buf.append(body); if (save) logger("cmd=[%s], reply: [%s]", cmd, buf.c_str()); acl_aio_writen(conn_, buf.c_str(), (int) buf.size()); }