Реализовать Mano-типы NanoHttpd в Android - PullRequest
0 голосов
/ 05 ноября 2019

Я хочу запустить локальный веб-сервер с nonohttpd, так как он очень легкий и хочет показать локальную сохраненную веб-страницу. Как разработчик junio, я как-то запутался, как именно, как бы я смог реализовать функцию serve, как сейчас? Я уже сделал строку с общими типами, но я не уверен, принадлежит ли она к заголовку и т. Д. Может быть, есть более простой в использовании веб-сервер, у которого уже есть все эти memetypes и функция cors, которые я мог бы использовать? Когда я пытаюсь открыть веб-страницу, JavaScript загружается правильно, и изображения и т. Д. Загружаются не слишком из-за проблемы MIME.

public class WebServer extends NanoHTTPD {

public WebServer(int port) {
    super( port );
}

private static String DEFAULT_FOLDER = "/mnt/internal_sd/Android/data/eu.tmc.braunwac/files/html";
/**
 * Common mime types for dynamic content
 */
public static final String
        MIME_PLAINTEXT = "text/plain",
        MIME_HTML = "text/html",
        MIME_JS = "application/javascript",
        MIME_CSS = "text/css",
        MIME_PNG = "image/png",
        MIME_JPG = "image/jpg",
        MIME_DEFAULT_BINARY = "application/octet-stream",
        MIME_XML = "text/xml";



private String webFolder;
private String msg;



@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public Response serve(IHTTPSession session) {
    Response resp;
    try {
        msg = getStringFromFile( DEFAULT_FOLDER + session.getUri() );
    } catch (Exception e) {
        e.printStackTrace();
    }
    if (this.msg != null){
        {
            resp = newFixedLengthResponse( this.msg );
            resp.addHeader( "Access-Control-Allow-Origin", "*" );
            resp.addHeader( "Access-Control-Max-Age", "3628800" );
            resp.addHeader( "Access-Control-Allow-Methods", "GET, POST, PUT, OPTIONS" );
            resp.addHeader( "Access-Control-Allow-Headers", "X-Requested-With" );
            resp.addHeader( "Access-Control-Allow-Headers", "Authorization" );
            resp.setChunkedTransfer( true );
            return resp;
        }

    } else {

        String msg = "<html><body><h1>Hello server</h1>\n";
        msg += "<p>We serve " + session.getUri() + " !</p>";
        return newFixedLengthResponse( msg + "</body></html>\n" );
    }
}

enter image description here

...