无法使用 http_listener(C++ REST SDK) 侦听具有本地主机地址的特定端口号
Cannot listen on specific port num with localhost address with http_listener(C++ REST SDK)
我使用 C++ REST SDK 构建了一个 HTTP 服务器,用于接收来自邮递员的请求,但是如果我这样编码:
http_listener listener(L"http://localhost/io");
listener.open().wait();
listener.support(methods::POST, [](http_request req) {
});
Postman 可以通过 POST 方法中的 http://localhost/io
连接到它,
但是如果我这样编码:
http_listener listener(L"http://localhost:6000/io");
Postman 无法使用 http://localhost:6000/io
和 POST 方法连接到它。
但是如果我像 http_listener listener(L"http://localhost/io:6000");
这样编码
Postman 可以在 http://localhost/io:6000
中使用 POST 方法连接它。我怎样才能让 http://localhost:6000/io
适合我的听众?我使用的另一个程序总是向 http://localhost:6000/io
发送 http 请求,所以我需要让我的服务器监听这个地址。
http_listener listener(L"http://localhost:6000"); //doesn't work, too.
但是当我将 6000 更改为任何其他端口号时,如 7000 或 8000,如 http_listener listener(L"http://localhost:7000")
或 http_listener listener(L"http://localhost:7000/io")
它适用于我。我用netstat -a -b
查看6000是否已经被别的程序占用,但是6000是空闲的
我想我有答案了。我遇到了同样的问题,我使用了不同的未使用端口和 "support" 函数的不同用法:
http_listener listener(L"http://localhost:11369/");
listener->open().wait();
listener->configuration() ;
listener->support(methods::GET,
std::tr1::bind(&CMFCApplication1Dlg::handle_get,
this,
std::tr1::placeholders::_1));
listener->support(methods::PUT,
std::tr1::bind(&CMFCApplication1Dlg::handle_put,
this,
std::tr1::placeholders::_1));
listener->support(methods::POST,
std::tr1::bind(&CMFCApplication1Dlg::handle_post,
this,
std::tr1::placeholders::_1));
listener->support(methods::DEL,
std::tr1::bind(&CMFCApplication1Dlg::handle_delete,
this,
std::tr1::placeholders::_1));
我在 C++ MFC 应用程序中使用 http_listener。所以这对你来说肯定会有所不同。如果您需要任何帮助处理程序来回答收到的请求,请随时告诉我!
此致,艾哈迈德。
我使用 C++ REST SDK 构建了一个 HTTP 服务器,用于接收来自邮递员的请求,但是如果我这样编码:
http_listener listener(L"http://localhost/io");
listener.open().wait();
listener.support(methods::POST, [](http_request req) {
});
Postman 可以通过 POST 方法中的 http://localhost/io
连接到它,
但是如果我这样编码:
http_listener listener(L"http://localhost:6000/io");
Postman 无法使用 http://localhost:6000/io
和 POST 方法连接到它。
但是如果我像 http_listener listener(L"http://localhost/io:6000");
这样编码
Postman 可以在 http://localhost/io:6000
中使用 POST 方法连接它。我怎样才能让 http://localhost:6000/io
适合我的听众?我使用的另一个程序总是向 http://localhost:6000/io
发送 http 请求,所以我需要让我的服务器监听这个地址。
http_listener listener(L"http://localhost:6000"); //doesn't work, too.
但是当我将 6000 更改为任何其他端口号时,如 7000 或 8000,如 http_listener listener(L"http://localhost:7000")
或 http_listener listener(L"http://localhost:7000/io")
它适用于我。我用netstat -a -b
查看6000是否已经被别的程序占用,但是6000是空闲的
我想我有答案了。我遇到了同样的问题,我使用了不同的未使用端口和 "support" 函数的不同用法:
http_listener listener(L"http://localhost:11369/");
listener->open().wait();
listener->configuration() ;
listener->support(methods::GET,
std::tr1::bind(&CMFCApplication1Dlg::handle_get,
this,
std::tr1::placeholders::_1));
listener->support(methods::PUT,
std::tr1::bind(&CMFCApplication1Dlg::handle_put,
this,
std::tr1::placeholders::_1));
listener->support(methods::POST,
std::tr1::bind(&CMFCApplication1Dlg::handle_post,
this,
std::tr1::placeholders::_1));
listener->support(methods::DEL,
std::tr1::bind(&CMFCApplication1Dlg::handle_delete,
this,
std::tr1::placeholders::_1));
我在 C++ MFC 应用程序中使用 http_listener。所以这对你来说肯定会有所不同。如果您需要任何帮助处理程序来回答收到的请求,请随时告诉我! 此致,艾哈迈德。