I am trying to use nanoHTTP in an Android App to serve a file index.html placed in raw directory.
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
.
.
.
r = getResources();
is = r.openRawResource(R.raw.index);
MyWebServer.java
@Override
public Response serve(String uri, Method method, Map<String, String> header, Map<String, String> parms, Map<String, String> files) {
.
.
.
answer = convertStreamToString(this.mainFile);
return new NanoHTTPD.Response(answer);
}
private static String convertStreamToString(InputStream is) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append((line + "\n"));
}
} catch (IOException e) {
Log.w("LOG", e.getMessage());
}
return sb.toString();
}
This code loads index.html for the first time flawlessly, but if I refresh the page then answer is empty string. What am I doing wrong ?