本文整理汇总了C++中acl::HttpServletResponse::setContentType方法的典型用法代码示例。如果您正苦于以下问题:C++ HttpServletResponse::setContentType方法的具体用法?C++ HttpServletResponse::setContentType怎么用?C++ HttpServletResponse::setContentType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类acl::HttpServletResponse
的用法示例。
在下文中一共展示了HttpServletResponse::setContentType方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: doOther
bool http_servlet::doOther(acl::HttpServletRequest&,
acl::HttpServletResponse& res, const char* method)
{
res.setStatus(400);
res.setContentType("text/xml; charset=utf-8");
// 发送 http 响应体
acl::string buf;
buf.format("<root error='unkown request method %s' />\r\n", method);
res.write(buf);
res.write(NULL, 0);
return false;
}
示例2: doUnknown
bool http_servlet::doUnknown(acl::HttpServletRequest&,
acl::HttpServletResponse& res)
{
res.setStatus(400);
res.setContentType("text/html; charset=$<CHARSET>");
// 发送 http 响应头
if (res.sendHeader() == false)
return false;
// 发送 http 响应体
acl::string buf("<root error='unkown request method' />\r\n");
(void) res.getOutputStream().write(buf);
return false;
}
示例3: doUnknown
bool http_servlet::doUnknown(acl::HttpServletRequest& req,
acl::HttpServletResponse& res)
{
out_.format(">>> request method: doUnknown <<<\r\n");
logger_request(req);
res.setStatus(400);
res.setContentType("text/html; charset=");
// 发送 http 响应体
acl::string buf("<root error='unkown request method' />\r\n");
(void) res.getOutputStream().write(buf);
return false;
}
示例4: doGet
bool http_servlet::doGet(acl::HttpServletRequest& req,
acl::HttpServletResponse& res)
{
res.setContentType("text/plain")
.setKeepAlive(req.isKeepAlive());
acl::string body;
body.format("%s version: %s; %s %s %s\r\n",
MASTER_NAME, MASTER_VERSION,
MASTER_CTLD_CMD, MASTER_CTLD_VERSION, MASTER_CTLD_DATE);
return reply(req, res, 200, body);
}
示例5: doError
bool http_servlet::doError(acl::HttpServletRequest&,
acl::HttpServletResponse& res)
{
res.setStatus(400);
res.setContentType("text/xml; charset=utf-8");
// 发送 http 响应体
acl::string buf;
buf.format("<root error='some error happened!' />\r\n");
res.write(buf);
res.write(NULL, 0);
return false;
}
示例6: doOther
bool http_servlet::doOther(acl::HttpServletRequest&,
acl::HttpServletResponse& res, const char* method)
{
res.setStatus(400);
res.setContentType("text/html; charset=");
// 发送 http 响应头
if (res.sendHeader() == false)
return false;
// 发送 http 响应体
acl::string buf;
buf.format("<root error='unkown request method %s' />\r\n", method);
(void) res.getOutputStream().write(buf);
return false;
}
示例7: doReply
bool http_servlet::doReply(acl::HttpServletRequest& req,
acl::HttpServletResponse& res, int status, acl::json& json)
{
res.setStatus(status);
res.setContentType("text/json");
if (1)
res.setKeepAlive(req.isKeepAlive());
else
res.setKeepAlive(false);
const acl::string& data = json.to_string();
res.setContentLength(data.size());
return res.write(data) && res.write(NULL, 0);
}
示例8: doError
bool http_servlet::doError(acl::HttpServletRequest&,
acl::HttpServletResponse& res)
{
res.setStatus(400);
res.setContentType("text/html; charset=");
// 发送 http 响应头
if (res.sendHeader() == false)
return false;
// 发送 http 响应体
acl::string buf;
buf.format("<root error='some error happened!' />\r\n");
(void) res.getOutputStream().write(buf);
return false;
}
示例9: doPost
bool http_servlet::doPost(acl::HttpServletRequest& req,
acl::HttpServletResponse& res)
{
// 如果需要 http session 控制,请打开下面注释,且需要保证
// 在 master_service.cpp 的函数 thread_on_read 中设置的
// memcached 服务正常工作
/*
const char* sid = req.getSession().getAttribute("sid");
if (*sid == 0)
req.getSession().setAttribute("sid", "xxxxxx");
sid = req.getSession().getAttribute("sid");
*/
// 如果需要取得浏览器 cookie 请打开下面注释
/*
const char* mycookie = req.getCookieValue("mycookie");
if (mycookie == NULL)
res.addCookie("mycookie", "{xxx}");
*/
bool keep_alive = req.isKeepAlive();
res.setContentType("text/xml; charset=utf-8") // 设置响应字符集
.setKeepAlive(keep_alive) // 设置是否保持长连接
.setChunkedTransferEncoding(true); // 采用 chunk 传输方式
const char* param1 = req.getParameter("name1");
const char* param2 = req.getParameter("name2");
// 创建 xml 格式的数据体
acl::xml body;
body.get_root()
.add_child("root", true)
.add_child("params", true)
.add_child("param", true)
.add_attr("name1", param1 ? param1 : "null")
.get_parent()
.add_child("param", true)
.add_attr("name2", param2 ? param2 : "null");
acl::string buf;
body.build_xml(buf);
// 发送 http 响应体,因为设置了 chunk 传输模式,所以需要多调用一次
// res.write 且两个参数均为 0 以表示 chunk 传输数据结束
return res.write(buf) && res.write(NULL, 0) && keep_alive;
}
示例10: doPost
bool WebsocketServlet_impl::doPost(acl::HttpServletRequest& req,
acl::HttpServletResponse& res)
{
res.setContentType("text/html; charset=utf-8") // 设置响应字符集
.setContentEncoding(false) // 设置是否压缩数据
.setChunkedTransferEncoding(true); // 采用 chunk 传输方式
const char* ip = req.getLocalAddr();
if (ip == NULL || *ip == 0)
{
logger_error("getLocalAddr error");
return false;
}
unsigned short port = req.getLocalPort();
if (port == 0)
{
logger_error("getLocalPort error");
return false;
}
acl::string local_addr;
local_addr << ip << ":" << port;
printf("getLocalAddr: %s\r\n", local_addr.c_str());
acl::string html_file;
html_file << "www/upload.html";
acl::string buf;
if (acl::ifstream::load(html_file, &buf) == false)
{
logger_error("load %s error %s",
html_file.c_str(), acl::last_serror());
return doError(req, res);
}
buf << "<script>g_url='ws://" << local_addr << "/'</script>";
// 发送 http 响应体,因为设置了 chunk 传输模式,所以需要多调用一次
// res.write 且两个参数均为 0 以表示 chunk 传输数据结束
return res.write(buf) && res.write(NULL, 0);
}
示例11: doPost
bool http_servlet::doPost(acl::HttpServletRequest& req,
acl::HttpServletResponse& res)
{
res.setContentType("text/html; charset=utf-8") // 设置响应字符集
.setContentEncoding(true) // 设置是否压缩数据
.setChunkedTransferEncoding(false); // 采用 chunk 传输方式
acl::string html_file;
html_file << var_cfg_html_path << "/client.html";
acl::string buf;
if (acl::ifstream::load(html_file, &buf) == false)
{
logger_error("load %s error %s",
html_file.c_str(), acl::last_serror());
return doError(req, res);
}
// 发送 http 响应体,因为设置了 chunk 传输模式,所以需要多调用一次
// res.write 且两个参数均为 0 以表示 chunk 传输数据结束
return res.write(buf) && res.write(NULL, 0);
}
示例12: doPost
bool http_servlet::doPost(acl::HttpServletRequest& req,
acl::HttpServletResponse& res)
{
// 如果需要 http session 控制,请打开下面注释,且需要保证
// 在 master_service.cpp 的函数 thread_on_read 中设置的
// memcached 服务正常工作
/*
const char* sid = req.getSession().getAttribute("sid");
if (*sid == 0)
req.getSession().setAttribute("sid", "xxxxxx");
sid = req.getSession().getAttribute("sid");
*/
// 如果需要取得浏览器 cookie 请打开下面注释
/*
*/
res.setContentType("text/xml; charset=utf-8") // 设置响应字符集
.setKeepAlive(req.isKeepAlive()) // 设置是否保持长连接
.setContentEncoding(true) // 自动支持压缩传输
.setChunkedTransferEncoding(false); // chunk 传输方式
const char* cmd = req.getParameter("cmd");
if (cmd == NULL || *cmd == 0)
{
logger_error("cmd not found");
return replyf(req, res, 400, "%s", "no cmd");
}
#define EQ !strcasecmp
acl::string buf;
commands_action action(addr_, req, res, cmd);
action.set_conf(conf_);
int status = action.run(buf);
return reply_json(req, res, status, buf);
}
示例13: doPost
bool http_servlet::doPost(acl::HttpServletRequest& req,
acl::HttpServletResponse& res)
{
#if 0
const char* session_name = req.getSession().getAttribute("session_name");
if (*session_name == 0)
{
req.getSession().setAttribute("session_name", "name");
req.getSession().setMaxAge(100);
}
session_name = req.getSession().getAttribute("session_name");
const char* session_user = req.getSession().getAttribute("session_user");
if (*session_user == 0)
req.getSession().setAttribute("session_user", "user");
session_user = req.getSession().getAttribute("session_user");
#else
const char* session_name = "name", *session_user = "user";
#endif
// 取得浏览器 cookie
const char* cookie_name = req.getCookieValue("cookie_name");
bool keep_alive = req.isKeepAlive();
const char* param1 = req.getParameter("name1");
const char* param2 = req.getParameter("name2");
// 创建 xml 格式的数据体
acl::xml body;
body.get_root()
.add_child("root", true)
.add_child("session", true)
.add_child("session_name", true)
.set_text(session_name)
.get_parent()
.add_child("session_user", true)
.set_text(session_user)
.get_parent()
.get_parent()
.add_child("cookie", true)
.add_child("cookie_name", true)
.set_text(cookie_name ? cookie_name : "")
.get_parent()
.get_parent()
.add_child("params", true)
.add_child("param", true)
.add_attr("name1", param1 ? param1 : "null")
.get_parent()
.add_child("param", true)
.add_attr("name2", param2 ? param2 : "null");
acl::string buf;
body.build_xml(buf);
#if 0
res.setContentType("text/xml; charset=utf-8") // 设置响应字符集
.setKeepAlive(keep_alive) // 设置是否保持长连接
//.setContentLength(buf.length());
#else
res.setContentType("text/xml; charset=utf-8") // 设置响应字符集
.setKeepAlive(keep_alive) // 设置是否保持长连接
.setContentEncoding(true) // 设置是否压缩数据
.setChunkedTransferEncoding(true); // 采用 chunk 传输方式
#endif
//logger("access http://%s%s", req.getRemoteAddr(), req.getRequestUri());
// 发送 http 响应体,因为设置了 chunk 传输模式,所以需要多调用一次
// res.write 且两个参数均为 0 以表示 chunk 传输数据结束
return res.write(buf) && res.write(NULL, 0);
}
示例14: doDoc
bool http_servlet::doDoc(acl::HttpServletRequest& req,
acl::HttpServletResponse& res, const char* path)
{
acl::string filepath(var_cfg_home_path);
if (*(var_cfg_home_path + strlen(var_cfg_home_path) - 1) != '/'
&& *path != '/')
{
filepath << '/';
}
filepath << path;
if (*(path + strlen(path) - 1) == '/')
filepath << "index.html";
acl::ifstream in;
if (in.open_read(filepath) == false)
{
logger_error("open %s error %s", filepath.c_str(),
acl::last_serror());
return doReply(req, res, 404, "%s", "Not found");
}
//printf("---open %s ok---\r\n", filepath.c_str());
long long len = in.fsize();
if (len <= 0)
{
logger_error("invalid fisze: %lld, file: %s",
len, filepath.c_str());
return doReply(req, res, 500, "%s", "Can't get file size");
}
res.setContentLength(len);
acl::string ctype;
getContentType(filepath, ctype);
res.setContentType(ctype);
char buf[8192];
int ret;
long long n = 0;
while (!in.eof())
{
if ((ret = in.read(buf, sizeof(buf), false)) == -1)
{
//logger_error("read from %s error %s", filepath.c_str(),
// acl::last_serror());
break;
}
if (res.write(buf, ret) == false)
{
logger_error("write to client error, file %s",
filepath.c_str());
return false;
}
n += ret;
}
if (n != len)
{
logger_error("write length(%lld) != file size(%lld), file: %s",
n, len, filepath.c_str());
return false;
}
return res.write(NULL, 0);
}
示例15: doPost
bool http_servlet::doPost(acl::HttpServletRequest& req,
acl::HttpServletResponse& res)
{
bool keep_alive = req.isKeepAlive();
res.setContentType("text/html; charset=utf-8") // 设置响应字符集
.setKeepAlive(keep_alive) // 设置是否保持长连接
.setChunkedTransferEncoding(true); // chunked 传输模式
// 发送 http 响应体
if (res.write("first line\r\nsecond line\r\nthird line\r\n\r\n") == false)
{
logger_error("write error!");
return false;
}
for (int i = 0; i < 10; i++)
{
if (res.write("hello") == false)
{
logger_error("write error!");
return false;
}
if (res.write(" ") == false)
{
logger_error("write error!");
return false;
}
if (res.write("world") == false)
{
logger_error("write error!");
return false;
}
if (res.write("\r\n") == false)
{
logger_error("write error!");
return false;
}
}
for (int j = 0; j < 10; j++)
{
for (int i = 0; i < 10; i++)
{
if (res.write("X") == false)
{
logger_error("write error!");
return false;
}
}
if (res.write("\r\n") == false)
{
logger_error("write error!");
return false;
}
}
// 最后一行不写 \r\n
if (res.write("Bye") == false)
{
logger_error("write error!");
return false;
}
return res.write(NULL, 0) && keep_alive;
}