diff options
author | elonen <elonen@iki.fi> | 2015-05-03 09:34:40 +0300 |
---|---|---|
committer | elonen <elonen@iki.fi> | 2015-05-03 09:34:40 +0300 |
commit | c4c41cc4b5690f41d07e9e75fa6151f1722ada1d (patch) | |
tree | 6a984bfaa347c64ad97adf62c1b6accf732ae369 /core/src | |
parent | 852da97068da511d18e6e03e724109742b446c81 (diff) | |
parent | 98d6d146214026ab242ce1de320bd7d203d7a5f3 (diff) | |
download | nanohttpd-c4c41cc4b5690f41d07e9e75fa6151f1722ada1d.tar.gz |
Merge pull request #130 from yext/master
Send amount of data set in content-length
Diffstat (limited to 'core/src')
-rw-r--r-- | core/src/main/java/fi/iki/elonen/NanoHTTPD.java | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/core/src/main/java/fi/iki/elonen/NanoHTTPD.java b/core/src/main/java/fi/iki/elonen/NanoHTTPD.java index 246a22b..f78557d 100644 --- a/core/src/main/java/fi/iki/elonen/NanoHTTPD.java +++ b/core/src/main/java/fi/iki/elonen/NanoHTTPD.java @@ -636,7 +636,7 @@ public abstract class NanoHTTPD { sendAsChunked(outputStream, pw); } else { int pending = data != null ? data.available() : 0; - sendContentLengthHeaderIfNotAlreadyPresent(pw, header, pending); + pending = sendContentLengthHeaderIfNotAlreadyPresent(pw, header, pending); pw.print("\r\n"); pw.flush(); sendAsFixedLength(outputStream, pending); @@ -648,10 +648,19 @@ public abstract class NanoHTTPD { } } - protected void sendContentLengthHeaderIfNotAlreadyPresent(PrintWriter pw, Map<String, String> header, int size) { - if (!headerAlreadySent(header, "content-length")) { - pw.print("Content-Length: "+ size +"\r\n"); + protected int sendContentLengthHeaderIfNotAlreadyPresent(PrintWriter pw, Map<String, String> header, int size) { + for (String headerName : header.keySet()) { + if (headerName.equalsIgnoreCase("content-length") { + try { + return Integer.parseInt(header.get(headerName)); + } catch (NumberFormatException ex) { + return size; + } + } } + + pw.print("Content-Length: "+ size +"\r\n"); + return size; } protected void sendConnectionHeaderIfNotAlreadyPresent(PrintWriter pw, Map<String, String> header) { |