【发布时间】:2013-01-03 11:12:29
【问题描述】:
我只是想获取带有标题的页面内容...但似乎我的大小为 1024 的缓冲区对于通过的最后一个信息包来说太大或太小...我不知道不想得到太多或太少,如果这是有道理的。这是我的代码。它可以很好地打印出包含所有信息的页面,但我想确保它是正确的。
//Build HTTP Get Request
std::stringstream ss;
ss << "GET " << url << " HTTP/1.0\r\nHost: " << strHostName << "\r\n\r\n";
std::string req = ss.str();
// Send Request
send(hSocket, req.c_str(), strlen(req.c_str()), 0);
// Read from socket into buffer.
do
{
nReadAmount = read(hSocket, pBuffer, sizeof pBuffer);
printf("%s", pBuffer);
}
while(nReadAmount != 0);
【问题讨论】:
-
您的问题是只显示页面的正文吗?你也想得到标题?
-
我希望能够控制是否获得标题,是的。但此刻,我正在得到它们......
-
您可以在收到页面后使用 html 解析器,将正文、头部等各个部分分开。
-
我的问题是我不确定我的缓冲区是否正常工作或按应有的方式工作。为什么我会收到标题?这正常吗?
-
在发送 HTTP get 请求后从套接字读取时,您期望什么行为?