0

私は http の初心者で、mongoose という組み込みの http サーバーを使用しています。
~/web_root で Web ルートを使用して、次のことを行います。

if uri == "/hello"
    show "hello world"
else
    show the file in web_root like index.html

このようにマングースを使ってみました

  struct mg_server *server;
  server = mg_create_server(p, HttpEventHandler);
  mg_set_option(server, "document_root", "~/web_root");
  mg_set_option(server, "listening_port", "8080");

  for(;;)
    mg_poll_server(server, 1000);

これは HttpEvenHandler です

int HttpEventHandler(struct mg_connection *conn, mg_event ev) {
  if(ev == MG_AUTH)
    return MG_TRUE;
  else if(ev == MG_REQUEST) {
    if(strcmp("/hello", conn->uri) == 0) {
      mg_printf_data(conn, "%s\n", "hello world");
    }
    return MG_TRUE;
  }

// I don't know what to write here

 return MG_FALSE;
}
4

3 に答える 3

1
  else if(ev == MG_REQUEST) {
    if(strcmp("/hello", conn->uri) == 0) {
      mg_printf_data(conn, "%s\n", "hello world");
      return MG_TRUE;
    }
    return MG_FALSE;  // Let Mongoose serve the request
  }

また、私はそれがうまくいくとは思わない:

mg_set_option(server, "document_root", "~/web_root");

などのフルパスを指定し/home/joe/web_rootます。

于 2014-08-10T04:55:38.450 に答える
0

それは本当にあなたが達成したいことですか?

ドキュメントには、 のようなコマンド ライン オプションを使用して、CGI 呼び出しとして認識される URI の種類を構成できると記載されています-cgi_pattern /cgi-bin/*.cgi

hello次に、 which outputs"hello world"という名前の CGI 実行可能ファイルを配置し~/web_root、Mongoose サーバーにそれを唯一の可能な CGI として使用するように指示するだけで済みます-cgi_pattern /hello$ (ただし、自分でテストしていません)。

于 2014-08-08T07:31:37.797 に答える