0

NanoHTTPD を使用して、Android からローカルで Web ページをホストしています。

私の問題は、サーバーがサイトのインデックス ページで応答することですが、常にインデックス ページで応答するため、それ以降のページに移動する方法がわかりません。

誰もがチュートリアルを持っていますが、私は何かを見つけるのに苦労しています. ありがとう :)

private class MyHTTPD extends NanoHTTPD {
    public MyHTTPD() throws IOException {
        super(PORT, null);
    }

    @Override
    public Response serve(String uri, String method, Properties header, Properties parms, Properties files) {
        Log.d("response", "URI:" + uri + " method: " + method + " header: " + header + " parms: " + parms + " files: " + files);
        final StringBuilder buf = new StringBuilder();
        for (Entry<Object, Object> kv : header.entrySet())
            buf.append(kv.getKey() + " : " + kv.getValue() + "\n");
        handler.post(new Runnable() {
            @Override
            public void run() {
                hello.setText(buf);
            }
        });
         //load the index page
        String html = null;
        InputStream is = getClass().getResourceAsStream("/com/me/pages/index.html");
        byte[] b;
        try {
            b = new byte[is.available()];
            is.read(b);
            html = new String(b);
        } catch (IOException e) { // TODO Auto-generated catch block
            e.printStackTrace();
        }

                  //return index as response
        return new NanoHTTPD.Response(HTTP_OK, MIME_HTML, html);
    }
}
4

1 に答える 1

0

NanoHTTPD が他のページを表示しない

もちろん、プチ serve関数は/com/me/pages/index.htmlファイルを提供するだけなので、他の関数は表示されません。他のファイル(あなたが言うようにページ)については、URIを対応するファイルにマップする必要があります。

たとえば、さまざまなプログラマーによる github での NanoHTTPD の開発をたどることができます。ネットワーク グラフはここにあり、(複数のページにサービスを提供する) ケースに役立つ特定のフォークはhereです。

于 2013-03-09T20:52:57.250 に答える