我尝试使用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()方法?
答案 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);
}