X-Git-Url: http://nitlanguage.org diff --git a/lib/nitcorn/http_response.nit b/lib/nitcorn/http_response.nit index b80fb7b..97276ca 100644 --- a/lib/nitcorn/http_response.nit +++ b/lib/nitcorn/http_response.nit @@ -39,7 +39,7 @@ class HttpResponse var header = new HashMap[String, String] # Body of this response - var body = "" is writable + var body: Writable = "" is writable # Files appended after `body` var files = new Array[String] @@ -50,7 +50,20 @@ class HttpResponse # Set the content length if not already set if not header.keys.has("Content-Length") then # Size of the body - var len = body.byte_length + var len + var body = self.body + if body isa Text then + len = body.byte_length + else if body isa Bytes then + len = body.length + else + # We need the length, but there is no length in a writable. + # So just render it as a bytes then measure :/ + body = body.write_to_bytes + len = body.length + # Keep the body as bytes since we have it + self.body = body + end # Size of included files for path in files do