繁体   English   中英

C ++ | Winsock - 编写HTTP Post以上传文件的正确方法?

[英]C++ | Winsock - Correct way to write HTTP Post for uploading a file?

警报我见过一些人已经问过但它通常是关于CURL的,我问的是通过WinSock2发送它。

好吧所以我知道如何轻松地发布POST和GET语句,(使用Application / application / x-www-form-urlencoded进行POST)但是我不知道如何使用multipart / form-data,我知道它有事情要做带边界指定何时完成发送数据。

但是基本的HTTP POST应该如何才能上传文件呢? (你也可以上传到PHP POSTBACK吗?如果它是application / x-www-form-urlencoded,我可以看到像filename = hello.png&data = ...)

像这样的格式:(这就是我所知道的关于发送数据的全部内容)我在网上找不到一个可靠的例子,所以我在问这个问题。

POST /postback.php HTTP/1.1
HOST: www.website.com
Content-Type: multipart/form-data; boundary=----IAmABoundary
Content-Length: 300

------IAmABoundary
Send Binary Data?
------IAmABoundary--

使用fiddler来捕获上传文件然后你可以看到实际的格式,我记得上面的例子或多或少都是正确的。 这是一个更完整的答案,有一个很好的例子: multipart / form-data的例子

HTTP消息是MIME消息。 它实际上是一种相当复杂的编码格式。

首先阅读RFC 2045 这是MIME的基本规范。

然后,转到RFC 2046 RFC 2046的第5节列出了multipart MIME消息的规范,它用于您看到的multipart/form-data格式。

这是很多材料可以读,真的。 但是,必须完全理解MIME格式的消息,以便有理解文件上传的工作方式。

如果你想实际发送文件内容,你可以把文件内容放在HTTP标题之后,并设置内容类型和内容长度

multipart / form-data由html表单用于发布/提交在其字段中包含文件的表单,它们使用多部分边界分隔部分/字段

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM