NanoHTTP服务器更新响应

时间:2017-02-13 20:26:48

标签: android http server nanohttpd

我尝试使用nanoHTTP从我的Android应用程序运行服务器。我的目标是与应用程序连接到同一网络的每个人都可以访问html网页。

到目前为止,这是我的NanoHttp-server-class:

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);
    }

从主活动中启动服务器后,当我打开 ip:port 时,我可以看到文本&#34; Hello server&#34; 浏览器。

现在我的问题是,如何从主要活动中更改html代码。 我想通过 IHTTPSession会话将html代码传递给 serve()方法,但我不知道怎么做以及会话

所以我的问题是,如何更新nanoHTTP服务器的响应或如何从主要活动中调用 serve()方法?

1 个答案:

答案 0 :(得分:0)

您无法手动调用活动中的serve()方法。

只要客户端请求到来,

serve()方法就会执行。  您可以实现的一种方法是,创建一个参数化构造函数,该构造函数接受MyHTTPD中的String数据并使用此构造函数创建对象。在创建对象时传递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);
    }