diff --git a/src/android/NanoHTTPDWebserver.java b/src/android/NanoHTTPDWebserver.java index 43c71df..65faee4 100644 --- a/src/android/NanoHTTPDWebserver.java +++ b/src/android/NanoHTTPDWebserver.java @@ -19,7 +19,7 @@ import java.util.Iterator; import java.util.Scanner; import java.util.UUID; -public class NanoHTTPDWebserver extends NanoHTTPD{ +public class NanoHTTPDWebserver extends NanoHTTPD { Webserver webserver; @@ -35,15 +35,15 @@ public class NanoHTTPDWebserver extends NanoHTTPD{ /** * Create a request object - * + * <p> * [ - * "requestId": requestUUID, - " body": request.jsonObject ?? "", - " headers": request.headers, - " method": request.method, - " path": request.url.path, - " query": request.url.query ?? "" - ] + * "requestId": requestUUID, + * " body": request.jsonObject ?? "", + * " headers": request.headers, + * " method": request.method, + * " path": request.url.path, + * " query": request.url.query ?? "" + * ] * * @param session * @return @@ -59,6 +59,15 @@ public class NanoHTTPDWebserver extends NanoHTTPD{ return jsonRequest; } + private String getContentType(JSONObject responseObject) throws JSONException { + if (responseObject.has("headers") && + responseObject.getJSONObject("headers").has("Content-Type")) { + return responseObject.getJSONObject("headers").getString("Content-Type"); + } else { + return "text/plain"; + } + } + @Override public Response serve(IHTTPSession session) { Log.d(this.getClass().getName(), "New request is incoming!"); @@ -86,19 +95,20 @@ public class NanoHTTPDWebserver extends NanoHTTPD{ JSONObject responseObject = (JSONObject) this.webserver.responses.get(requestUUID); Log.d(this.getClass().getName(), "responseObject: " + responseObject.toString()); Response response = null; + try { response = newFixedLengthResponse( - Response.Status.lookup(responseObject.getInt("status")), - "text/plain", - responseObject.getString("body") + Response.Status.lookup(responseObject.getInt("status")), + getContentType(responseObject), + responseObject.getString("body") ); Iterator<?> keys = responseObject.getJSONObject("headers").keys(); while (keys.hasNext()) { String key = (String) keys.next(); response.addHeader( - key, - responseObject.getJSONObject("headers").getString(key) + key, + responseObject.getJSONObject("headers").getString(key) ); }