2017-02-13 12 views
0

Я пытаюсь запустить сервер из своего приложения для Android с помощью nanoHTTP. Моя цель состоит в том, чтобы все, подключенные к той же сети, что и приложение, могли получить доступ к веб-странице html.Ответ на обновление сервера NanoHTTP

До сих пор это мой NanoHttp-сервер класса:

private class MyHTTPD extends NanoHTTPD { 

public MyHTTPD() throws IOException { 
    super(8080); 
} 

@Override 
    public Response serve(IHTTPSession session) { 
     String msg = "<html><body><h1>Hello server</h1></body></html>\n"; 
     return newFixedLengthResponse(msg); 
    } 

После того как я запустить сервер из главного activityn, я могу видеть текст «Привет сервер», когда я открываю ф: порт в браузере.

Теперь, мой вопрос в том, как я могу изменить html-код из основного действия. Я думал о прохождении HTML код в служить() метода через IHTTPSession сессии, но я не в настоящее время нет, как это сделать, и какой параметр сессии.

Так что мой вопрос в том, как я могу обновить ответ моего nanoHTTP-сервера или как я могу позвонить serve() Метод из основного вида деятельности?

ответ

0

Вы не можете вызвать метод serve() из операции вручную.

метод serve() будет выполняться при каждом запросе клиента. Один из способов, которым вы можете достичь, - создать один параметризованный конструктор, который принимает данные String в MyHTTPD и создаст объект с помощью этого конструктора. Передавайте данные HTML при создании объекта. Теперь для каждого запроса служат эти данные.

Например:

private class MyHTTPD extends NanoHTTPD { 

private String htmlData; 

public MyHTTPD() throws IOException { 
    super(8080); 
} 

public MyHTTPD(String data) throws IOException { 
    this(); 
    htmlData = data; 

} 

@Override 
    public Response serve(IHTTPSession session) { 
     // String msg = "<html><body><h1>Hello server</h1></body></html>\n"; 
     return newFixedLengthResponse(htmlData); 
    } 
+0

Хорошо, я нашел решение. Я создаю метод для изменения String htmlData и вызываю его каждый раз при изменении html. Ваше предложение помогло мне найти решение. – Luis

 Смежные вопросы

  • Нет связанных вопросов^_^