diff --git a/exec/load/http.js b/exec/load/http.js index 081c493f3fa15098afa62165acb961008c5fa950..c8002e967e57a499bf34e69a2acf09873f182894 100644 --- a/exec/load/http.js +++ b/exec/load/http.js @@ -112,18 +112,26 @@ function HTTPRequest(username,password) if(header=='') return; this.response_headers.push(header); - m=header.match(/^Content-length:\s+([0-9]+)$/); + m=header.match(/^Content-length:\s+([0-9]+)$/i); if(m!=null) - this.contentlength=parseInt(m[0]); + this.contentlength=parseInt(m[1]); } }; this.ReadBody=function() { var ch; + var lastlen=0; + var len=this.contentlength; + if(len==undefined) + len=1024; this.body=''; - while((ch=this.sock.recv(1))!=null && ch != '') { - this.body += ch; + while((ch=this.sock.recv(len))!=null && ch != '') { + this.body += ch.toString(); + len -= ch.length; + if(len < 1) + len=1024; + js.gc(); } };