locked
BackgroundTransferRequest中如何处理302的StatusCode RRS feed

  • 问题

  • 在使用BackgroundTransferRequest下载文件时,如何处理服务器响应的302 Http StatusCode?
    2014年7月25日 15:07

全部回复

  • 你好,

    从MSDN的文档来看,只给出了完成请求的status code,为200或者是206,这个和服务器的配置有关。

    传输成功时, TransferStatus 的值为 Completed ,且  TransferError 为空。具体可以参考这个链接:

    BackgroundTransferRequestStatusCode Property

    如果返回是302的话,一般表示Temporary Redirect, 字面意思临时跳转, 表明所请求的资源临时驻留在不同的 URI 下。这个估计就得看看服务器那边的设置了。具体可以参考这个帖子: HTTP  服务器状态代码(StatusCode)定义


    Keep Fighting

    2014年7月26日 7:10
  • 从目前的情况看 BackgroundTransferRequest 在遇到 HTTP Status Code 302 时不会将请求重定向到新的 URL 上去下载文件(如果有办法获得Response的HEADER则可以知道重定向的地址,但API中无此方法)。用 HttpWebRequest 则可以通过设置 AllowAutoRedirect 属性自动重定向到新的位置,但使用 HttpWebRequest 无法在下载时获取进度,因为 EndGetResponse() 要在获得所有数据之后才能得到 HttpWebResponse 对象。
    2014年7月30日 7:11