2017-02-13 36 views
0

我想检测文件的文件大小,以字节为单位,然后下载或者最初启动。棘手的部分是我正在使用第三方SDK与Web服务进行交互。他们没有提供获取文件大小的方法。我想知道是否有可能拦截邮件回复以确定文件总大小?可以在黑暗中拍摄..C# - 通过拦截Web流量获取下载的文件大小?

 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传入检索方法来启动下载。这返回一个字节[]。由于他们不提供这种功能,是否有我可以包装所有这些,以便我可以适当地更新进度栏。

回答

2

您可以使用HEAD动词HTTP来获取资源

例如元数据,如果你要下载的.pdf文件在以下位置

您使用以下命令

HEAD“https://www.depts.ttu.edu/upwardbound/books/the-7-habits-ofhighly-effective-people.pdf

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

接受-范围→字节 的Content-Length→777476 内容类型→应用程序/ PDF 日期→周一,2017年2月13日20时32分29秒GMT 的ETag→ “9a3a29bac9ecd11:0” 最后所 修改→星期二,2016年8月2日14点25分32秒GMT 服务器→微软-IIS/7.5 X供电,通过→ASP.NET

可以使用的工具,像邮递员检查这个

WWW。 getpostman.com

也看过有关负责人动词这里

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

+0

。我期待到这个工作,这是方式的伟大的阅读! – LCaraway

+0

我打算回答一个非常相似的答案 - 它将在标题中。否则,无法知道。 – SQLMason

+0

我的问题是如何处理上述答案。让sdk处理大多数事情,所以我将不得不通过拦截和注入HEAD动词来获得创意。 – LCaraway