diff --git a/src/HttpClient.c b/src/HttpClient.c index d313bd3..8629b6e 100644 --- a/src/HttpClient.c +++ b/src/HttpClient.c @@ -150,7 +150,7 @@ HttpRequest(HttpRequestMethod method, int flags, unsigned short port, char *host return NULL; } - StreamPrintf(context->stream, "%s %s HTTP/1.1\r\n", + StreamPrintf(context->stream, "%s %s HTTP/1.0\r\n", HttpRequestMethodToString(method), path); HttpRequestHeader(context, "Connection", "close"); diff --git a/tools/src/http.c b/tools/src/http.c index b42fd58..c48855d 100644 --- a/tools/src/http.c +++ b/tools/src/http.c @@ -155,7 +155,6 @@ main(int argc, char **argv) Free(val); } - HttpRequestSendHeaders(cx); HashMapFree(requestHeaders); if (data) @@ -181,15 +180,29 @@ main(int argc, char **argv) return 1; } + HttpRequestSendHeaders(cx); StreamCopy(in, HttpClientStream(cx)); - StreamClose(in); } else { + char *lenStr; + int len = strlen(data); + int nBytes = snprintf(NULL, 0, "%d", len); + + lenStr = Malloc(nBytes + 1); + snprintf(lenStr, nBytes + 1, "%d", len); + + HttpRequestHeader(cx, "Content-Length", lenStr); + Free(lenStr); + HttpRequestSendHeaders(cx); StreamPuts(HttpClientStream(cx), data); } } + else + { + HttpRequestSendHeaders(cx); + } res = HttpRequestSend(cx);