本文整理汇总了C++中acl::HttpServletResponse::setContentLength方法的典型用法代码示例。如果您正苦于以下问题:C++ HttpServletResponse::setContentLength方法的具体用法?C++ HttpServletResponse::setContentLength怎么用?C++ HttpServletResponse::setContentLength使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类acl::HttpServletResponse
的用法示例。
在下文中一共展示了HttpServletResponse::setContentLength方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: doReply
bool http_servlet::doReply(acl::HttpServletRequest&,
acl::HttpServletResponse& res, int status, const char* fmt, ...)
{
acl::string buf;
va_list ap;
va_start(ap, fmt);
buf.vformat(fmt, ap);
va_end(ap);
res.setStatus(status);
res.setContentLength(buf.size());
return res.write(buf) && res.write(NULL, 0);
}
示例2: 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);
}