HTTP POST mutli part“BAD REQUEST”

我正在尝试使用POST上传文件

这是我的要求:

POST /upload.php HTTP/1.1 Host: localhost Content-Type: multipart/form-data; boundary=---------------------------552335022525 Content-Length: 192 -----------------------------552335022525 Content-Disposition: form-data; name="userfile"; filename="12.txt" Content-Type: text/plain blabla -----------------------------552335022525-- 

使用HTTP live header firefox插件一切正常

但是当把它放在一个char *缓冲区并用winsocksapi发送它时,我得到400 Bad Request错误

标头和有效负载之间需要一个空行。

 Content-Length: 192 -----------------------------552335022525 

这是HTTP协议的一部分。 HTTP请求标头以第一个空行结束(CR-LF本身。)您发送的是产生字符串

 -----------------------------552335022525 

被采取(以及以下两行)作为请求标题,当然,它不是。 服务器无法生成头部或尾部,因此它会响应400 Bad Request。

此外,使用multipart / form-data不需要发送Content-length,甚至也不是一个好主意,因为错误的值可能会产生问题。 MIME多部分格式是自我描述的。