Локальный веб-сервер с NanoHTTPD - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь создать локальный веб-сервер с помощью NanoHTTPD на Android.Я знаю, как использовать его для одного файла, делая что-то вроде:

@Override
public Response serve(IHTTPSession session) {
    String answer = "";
    try {
        FileReader index = new FileReader(fileLocation);
        BufferedReader reader = new BufferedReader(index);
        String line = "";
        while ((line = reader.readLine()) != null) {
            answer += line;
        }
        reader.close();
    } catch(IOException ioe) {
        Log.w("Httpd", ioe.toString());
    }
    return newFixedLengthResponse(answer);
}

и устанавливая его на порт 8080, чтобы я мог перейти к http://localhost:8080 и просмотреть файл.Однако я хотел бы использовать NanoHTTPD для размещения всего каталога на сервере, а не только одного файла, чтобы запустить игру HTML5.В некотором роде аналогично тому, как я могу перейти к папке в командной строке в Windows и использовать

python -m http.server 4444

для просмотра папки, как если бы это был веб-сайт на http://localhost:4444. Я неуверен, как это сделать с помощью NanoHTTPD.Может кто-нибудь помочь мне понять, с чего начать, или есть другая библиотека, которую гораздо проще использовать?

Заранее спасибо.Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 24 октября 2018

Вы на правильном пути.Быстрый ответ смотрите здесь .

. Вы должны генерировать HTML-файлы структуры каталогов для пользователя.То есть, когда пользователь впервые связывается с вами, вы читаете локальный каталог, который вы определили как корневой каталог, и создаете HTML-файл в качестве ответа с именами файлов в качестве ссылок.

Если пользователь затем щелкает по одному файлу, обслуживайте его.как вы уже делаете.

Я нашел ответ, демонстрирующий, как динамически генерировать HTML-файлы, которые вы можете использовать здесь .

...