Ok, I did dive into the issue and found the bug which is on the server side: the server does bug if you send mix-cased http header names, namely 'Content-type' instead of 'Content-Type'. Weird, I have a very strong feeling of deja vu.
Here is a patch to work-around those buggy servers with lynx: --- --- a/WWW/Library/Implementation/HTTP.c +++ b/WWW/Library/Implementation/HTTP.c @@ -1741,13 +1741,13 @@ anAnchor->post_content_type ? anAnchor->post_content_type : "lose")); - HTBprintf(&command, "Content-type: %s%c%c", + HTBprintf(&command, "Content-Type: %s%c%c", anAnchor->post_content_type ? anAnchor->post_content_type : "lose", CR, LF); - HTBprintf(&command, "Content-length: %d%c%c", + HTBprintf(&command, "Content-Length: %d%c%c", !isBEmpty(anAnchor->post_data) ? BStrLen(anAnchor->post_data) : 0,