Added support for content length and HTTP error messages

This commit is contained in:
Tobi Schäfer 2007-08-30 12:38:33 +00:00
parent 437d603faf
commit 2af69af96f

View file

@ -9,9 +9,9 @@
* Copyright 1998-2006 Helma Software. All Rights Reserved. * Copyright 1998-2006 Helma Software. All Rights Reserved.
* *
* $RCSfile: Http.js,v $ * $RCSfile: Http.js,v $
* $Author: michi $ * $Author: hannes $
* $Revision: 1.7 $ * $Revision: 1.8 $
* $Date: 2007/07/17 16:12:09 $ * $Date: 2007/07/18 12:05:12 $
*/ */
@ -546,12 +546,25 @@ helma.Http = function() {
charset = charset.replace('"', ' ').trim(); charset = charset.replace('"', ' ').trim();
result.charset = charset; result.charset = charset;
} }
if (result.length != 0 && result.code == 200) { if (result.length != 0 && result.code == 200) {
responseHandler(conn, result); responseHandler(conn, result);
if (result.content) { if (result.content) {
result.length = result.content.length; result.length = result.content.length;
} }
result.length = result.content.length;
} else {
var errorStream = conn.getErrorStream();
if (errorStream) {
var body = new java.io.ByteArrayOutputStream();
var input = new java.io.BufferedInputStream(errorStream);
var buf = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, 1024);
var str;
while ((str = input.read(buf)) > -1) {
body.write(buf, 0, str);
}
input.close();
result.error = body.toString();
}
} }
conn.disconnect(); conn.disconnect();
return result; return result;