无法使用 wininet 将 ZIP 文件发布到服务器

Posted

技术标签:

【中文标题】无法使用 wininet 将 ZIP 文件发布到服务器【英文标题】:unable to post a ZIP file to a server using wininet 【发布时间】:2011-06-20 12:51:56 【问题描述】:

我正在使用二进制模式打开文件

fopen("abhi.zip","rb");

并从中读取内容并将其附加到标题。

因为“abhi.zip”(压缩文件)中有很多空字符

它只在读取空字符之前发布数据。

我正在使用 httpsendrequest(...);

我被打动了,谁能帮帮我...

【问题讨论】:

发布您的代码以获得更准确的响应。可能您需要以某种方式封装二进制数据,因为 html 是一种文本协议 - 您可以编码为 Base64,还是使用 XML CDATA 之类的东西? 在此处查看相关问题,如果它适合您,请为答案投票。 MIME 看起来也像下面的回复 +1 的方式。 ***.com/questions/4516149/how-to-send-mime-over-http 【参考方案1】:

您不应该将 POST 数据粘贴到标头中,而是将其作为 lpOptional 参数传递,将其长度传递给 dwOptionalLength。您可能需要使用适当的 MIME 边界对数据进行编码和包装(我找不到关于是否需要这样做的明确文档)

【讨论】:

非常感谢它的工作......我从一开始就使用 loOptional 参数,但我使用 strlen(data) 作为 dwoptionalLength,它给出的长度小于所需长度,因为“数据”参数有 NULL 字符中间……

以上是关于无法使用 wininet 将 ZIP 文件发布到服务器的主要内容,如果未能解决你的问题,请参考以下文章

WinInet - 没有 Internet Explorer 就无法工作?

如何使用 wininet 强制执行 tls 1.x

无法使用 wininet 获取 POST 请求响应

无法从 WinForms 应用程序设置 WinInet 代理

如果防火墙在 Word 模板 VBA 中使用 wininet.dll,则无法从 FTP 下载文件

Windows 7 TLS 1.2 上的 WinInet / IE11 启用无法在网站上运行