projects
/
org.ibex.core.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
2003/05/02 13:30:52
[org.ibex.core.git]
/
src
/
org
/
xwt
/
HTTP.java
diff --git
a/src/org/xwt/HTTP.java
b/src/org/xwt/HTTP.java
index
258dc75
..
e79af03
100644
(file)
--- a/
src/org/xwt/HTTP.java
+++ b/
src/org/xwt/HTTP.java
@@
-363,7
+363,10
@@
public class HTTP {
PrintWriter pw = new PrintWriter(new OutputStreamWriter(sock.getOutputStream()));
if (content != null) {
pw.print("POST " + path + " HTTP/1.1\r\n");
PrintWriter pw = new PrintWriter(new OutputStreamWriter(sock.getOutputStream()));
if (content != null) {
pw.print("POST " + path + " HTTP/1.1\r\n");
- pw.print("Content-Length: " + content.length() + "\r\n");
+ int contentLength = content.substring(0, 2).equals("\r\n") ?
+ content.length() - 2 :
+ (content.length() - content.indexOf("\r\n\r\n") - 4);
+ pw.print("Content-Length: " + contentLength + "\r\n");
if (contentType != null) pw.print("Content-Type: " + contentType + "\r\n");
} else {
pw.print("GET " + path + " HTTP/1.1\r\n");
if (contentType != null) pw.print("Content-Type: " + contentType + "\r\n");
} else {
pw.print("GET " + path + " HTTP/1.1\r\n");
@@
-502,7
+505,12
@@
public class HTTP {
public int read(byte[] b, int off, int len) throws IOException {
boolean good = false;
try {
public int read(byte[] b, int off, int len) throws IOException {
boolean good = false;
try {
- if (length == 0 && contentLength == -1) readChunk();
+ if (length == 0 && contentLength == -1) {
+ readChunk();
+ if (chunkedDone) return -1;
+ } else {
+ if (length == 0) return -1;
+ }
if (len > length) len = length;
int ret = super.read(b, off, len);
length -= ret;
if (len > length) len = length;
int ret = super.read(b, off, len);
length -= ret;
@@
-521,7
+529,7
@@
public class HTTP {
}
skip(2);
} else {
}
skip(2);
} else {
- skip(length);
+ if (length != 0) skip(length);
}
if (releaseMe != null) releaseMe.release();
}
}
if (releaseMe != null) releaseMe.release();
}