Poco :: Net :: HTTPRequestHandler * createRequestHandler не вызывается

Я создаю 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?

0

Решение

Фабрика должна создать и вернуть указатель на HTTPRequestHandler (который на самом деле обрабатывает запрос), а не просто вернуть 0. Вот пример.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]