C#-通过拦截Web流量获取下载文件大小?

C#-通过拦截Web流量获取下载文件大小?,c#,web-services,C#,Web Services,我希望在文件下载之前或最初启动时检测文件的大小(以字节为单位)。棘手的是,我正在使用第三方SDK与web服务交互。它们没有提供获取文件大小的方法。我想知道是否可以截取post响应以确定总文件大小?可能是在黑暗中开枪 public void getExport(string jid, bool compression) { bool comp = false; while (comp == false) {

我希望在文件下载之前或最初启动时检测文件的大小(以字节为单位)。棘手的是,我正在使用第三方SDK与web服务交互。它们没有提供获取文件大小的方法。我想知道是否可以截取post响应以确定总文件大小?可能是在黑暗中开枪

        public void getExport(string jid, bool compression)
    {
        bool comp = false;
        while (comp == false)
        {
            comp = _eb.IsComplete(jid);
        }

        //capture filesize of download & report back???????????

        byte[] b = this._eb.Retrieve(jid, compression);

        this._eb.Delete(jid);
        this._ws.Destroy();

        this._export = b;

    }

在上面的脚本中,我已经构建了一个导出,该导出保存为服务器上的作业。此进程返回了作业ID或jid。然后,脚本通过将jid传递到检索方法来启动下载。这将返回一个字节[]。由于他们不提供此功能,是否有什么东西可以让我将所有这些都包装起来,以便适当地更新进度条

您可以在http中使用HEAD动词来获取资源的元数据

例如,如果您想在以下位置下载.pdf文件

您可以使用以下命令

头“

如果您看到内容长度将给出要下载的文件的大小,则在不下载文件的情况下将返回以下信息

接受范围→字节 内容长度→777476 内容类型→申请表格/pdf 日期→2017年2月13日星期一20:32:29 GMT 埃塔格→“9a3a29bac9ecd11:0” 最后修改→2016年8月2日星期二14:25:32 GMT 服务器→Microsoft IIS/7.5 X动力→ASP.NET

你可以使用像邮递员这样的工具来检查这个

www.getpostman.com

也可以在这里阅读有关头动词的内容


www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

您可以在http中使用HEAD动词来获取资源的元数据

例如,如果您想在以下位置下载.pdf文件

您可以使用以下命令

头“

如果您看到内容长度将给出要下载的文件的大小,则在不下载文件的情况下将返回以下信息

接受范围→字节 内容长度→777476 内容类型→申请表格/pdf 日期→2017年2月13日星期一20:32:29 GMT 埃塔格→“9a3a29bac9ecd11:0” 最后修改→2016年8月2日星期二14:25:32 GMT 服务器→Microsoft IIS/7.5 X动力→ASP.NET

你可以使用像邮递员这样的工具来检查这个

www.getpostman.com

也可以在这里阅读有关头动词的内容


www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

我将研究在这方面的工作。顺便说一句,那是一本很棒的书!我将用一个非常相似的答案来回答——它将出现在标题中。否则,就没有办法知道了。我的问题是如何在中使用上述答案。sdk可以处理大部分事情,所以我必须在截取和注入HEAD动词方面有所创新。我会在这方面进行研究。顺便说一句,那是一本很棒的书!我将用一个非常相似的答案来回答——它将出现在标题中。否则,就没有办法知道了。我的问题是如何在中使用上述答案。sdk可以处理大部分事情,所以我必须在截取和注入HEAD动词时发挥创造性。