我正在尝试使用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错误
答案 0 :(得分:1)
标题和有效负载之间需要一个空行。
Content-Length: 192
-----------------------------552335022525
这是HTTP协议的一部分。 HTTP请求标头以第一个空行结束(CR-LF本身。)您发送的内容是字符串
-----------------------------552335022525
被采取(以及以下两行)作为请求标题,当然,它不是。服务器不能使用它的头部或尾部,因此它会响应400 Bad Request。
此外,使用multipart / form-data不需要发送Content-length,甚至也不是一个好主意,因为错误的值可能会产生问题。 MIME多部分格式是自我描述的。