当前位置: 代码迷 >> Android >> NanoHTTP服务器更新响应
  详细解决方案

NanoHTTP服务器更新响应

热度:14   发布时间:2023-08-04 10:52:05.0

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

到目前为止,这是我的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);
    }

从主要活动启动服务器后,当我在浏览器中打开ip:port时,可以看到文本“ Hello server”

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

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

您无法从活动中手动调用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);
    }
  相关解决方案