我正在用 C++ 实现服务器。每当来自客户端的请求到来时,我都会解析该请求并检查该请求是否针对 GET/HEAD。如果请求是 GET 我必须显示文件的内容。我的问题是,如果是文本文件内容正确地出现在浏览器上,但如果是 html 文件请求,则浏览器显示 html 文件源代码。我需要一些提示或方向,如何显示 html 文件的内容?
代码片段:
if(c.r_type == "GET")
{
ifstream file;
char *readblock;
size_t size;
file.open(c.r_filename.c_str());
if (send(c.r_acceptid,c.r_ctype.c_str(), strlen(c.r_ctype.c_str()), 0) == -1)
perror("send");
if (file.is_open())
{
file.seekg (0, ios::end);
size = file.tellg();
readblock = new char [size];
file.seekg (0, ios::beg);
file.read(readblock, size);
}
else
cout<<"Never went Inside"<<endl;
if (send(c.r_acceptid, readblock, size, 0) == -1)
perror("send");
file.close();
delete [] readblock;
close(c.r_acceptid);
}