Я создаю http-сервер с Poco. как это
Poco::Net::ServerSocket svs(10880);
Poco::Net::HTTPServerParams* pParams = new Poco::Net::HTTPServerParams;
pParams->setKeepAlive(true);
Poco::Net::HTTPServer srv(new RequestHandlerFactory, svs, pParams);
srv.start();
и это часть обработчика
class RequestHandlerFactory: public Poco::Net::HTTPRequestHandlerFactory
{
public:
Poco::Net::HTTPRequestHandler* createRequestHandler(const Poco::Net::HTTPServerRequest& request)
{
cout << "hi!" << endl;
if (request.getURI() == "/test")
cout << endl << "test!" << endl;
else
{
cout << endl << request.getURI() << endl;
return 0;
}
}
};
это хорошо работает, когда я получаю этот сервер через веб-браузеры. но это никогда не работает, когда страница PHP перенаправляет. как это
//xxx.xxx.xxx.xxx is the poco server ip
echo "<meta http-equiv='refresh' content='0; url=http://xxx.xxx.xxx.xxx:10880/test'>";
или же
echo «document.location.href = ‘http://xxx.xxx.xxx.xxx:10880/test«;
«;
или же
echo «http://xxx.xxx.xxx.xxx:10880/test ‘>»;
Я не вижу «привет». Должен ли я установить больше вещей для этого? или я должен использовать другие классы? не Poco :: Net :: HTTPServer?
Фабрика должна создать и вернуть указатель на HTTPRequestHandler
(который на самом деле обрабатывает запрос), а не просто вернуть 0. Вот пример.
Других решений пока нет …