Boost http 服务器示例不起作用?
Boost http server example not working?
我已经从 this tutorial 复制了文件(来自 "HTTP Server" 的文件),但似乎无法正常工作。我有 运行 带有 0.0.0.0 5000 .
的应用程序,但是当我尝试连接到页面 localhost:5000 时,我总是得到 404 Not Found。怎么做才能做到 运行?
如果您收到状态代码为 404 的 HTTP 响应,则 HTTP 服务器正在 运行 处理请求并提供响应。如果服务器不是 运行,则不会返回 HTTP 响应。浏览器可能会提供有关失败的其他详细信息:
$ lsof -i tcp:5000 # verify nothing is listening to port 5000
$ curl http://localhost:5000/
curl: (7) Failed to connect to localhost port 5000: Connection refused
验证 HTTP 请求中请求的路径是否存在于与启动服务器时提供的 doc_root
参数对应的目录中。另外,请注意,如果请求路径以 /
结尾,则服务器会将 index.html
附加到路径。正如在 code 中看到的,如果服务器无法打开路径指定的文件,那么服务器将响应具有 404 状态代码的 HTTP 响应。
// Open the file to send back.
std::string full_path = doc_root_ + request_path;
std::ifstream is(full_path.c_str(), std::ios::in | std::ios::binary);
if (!is)
{
rep = reply::stock_reply(reply::not_found);
return;
}
我已经从 this tutorial 复制了文件(来自 "HTTP Server" 的文件),但似乎无法正常工作。我有 运行 带有 0.0.0.0 5000 .
的应用程序,但是当我尝试连接到页面 localhost:5000 时,我总是得到 404 Not Found。怎么做才能做到 运行?
如果您收到状态代码为 404 的 HTTP 响应,则 HTTP 服务器正在 运行 处理请求并提供响应。如果服务器不是 运行,则不会返回 HTTP 响应。浏览器可能会提供有关失败的其他详细信息:
$ lsof -i tcp:5000 # verify nothing is listening to port 5000
$ curl http://localhost:5000/
curl: (7) Failed to connect to localhost port 5000: Connection refused
验证 HTTP 请求中请求的路径是否存在于与启动服务器时提供的 doc_root
参数对应的目录中。另外,请注意,如果请求路径以 /
结尾,则服务器会将 index.html
附加到路径。正如在 code 中看到的,如果服务器无法打开路径指定的文件,那么服务器将响应具有 404 状态代码的 HTTP 响应。
// Open the file to send back.
std::string full_path = doc_root_ + request_path;
std::ifstream is(full_path.c_str(), std::ios::in | std::ios::binary);
if (!is)
{
rep = reply::stock_reply(reply::not_found);
return;
}