私はこのようにPocoでhttpサーバを作成しています。
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ではなく、もっと多くのことを設定する必要がありますか?それとも他のクラスを使用する必要がありますか?
回答:
回答№1は1工場はポインタを作成して返す HTTPRequestHandler
(実際には要求を処理します)0を返すだけではありません。 例.