2

我的 CGI 脚本使用 headersContent-Disposition: attachmentTransfer-Encoding: chunked,所以我以块的形式打印文件内容。

因为内容取决于很多因素并且是实时生成的,所以在某些情况下脚本无法完成它的工作。如果发生这种情况,则已发送的部分内容是无效文件。如果脚本以常规方式结束,Web 服务器关闭连接并且浏览器将内容视为完整并提供用户保存或打开下载的文件,即使它是无效的。

我正在寻找解决方案如何模拟网络错误或任何类似的会导致一些错误的东西,所以浏览器不会相信下载已经成功完成并且不会让客户端保存或打开这样的文件。

4

3 回答 3

0

由于您正在测试客户端在遇到错误时的行为,因此以下可能是合适的。

为您的 CGI 创建一个模拟器,它将接受传入连接,将一些数据发送回客户端,然后在关闭连接之前休眠n秒。然后将您的客户端配置为具有小于n的超时值。此时,您的客户端代码应该会超时并输入错误处理代码。

于 2013-07-26T19:15:54.123 回答
0

可能的一种方法是,如果脚本遇到无法生成剩余输出的情况,则导致脚本出现运行时错误(例如被零除错误)。我很好奇浏览器在这种情况下会如何响应。

于 2013-07-26T18:19:38.710 回答
0

我不确定我是否完全掌握了这里的服务器逻辑;但是每当我不得不弄乱连接时,我通常会使用它netem来引入数据包丢失和/或延迟(例如触发超时)——YMMV。

于 2013-07-27T14:56:46.420 回答