我需要实现一个可以将文件发布到位的 Web 服务(后台智能传输服务)。语言是 ASP.NET (C#)。我遇到的问题是“范围”的东西。
我的代码当前接收到 http 请求(有效范围存在于 0 - 4907 的 http 标头中),然后在响应对象中输出字节数组的一部分。
这是我的服务器代码:
_context.Response.Clear();
_context.Response.AddHeader("Content-Range", "bytes " + lower.ToString() + "-" + upper.ToString() + "//" + view.Content.Length.ToString());
_context.Response.AddHeader("Content-Length", upper.ToString());
_context.Response.AddHeader("Accept-Ranges", "bytes");
_context.Response.ContentType = "application/octet-stream";
_context.Response.BinaryWrite(data);
_context.Response.End();
接下来发生的事情是,随后的请求在标头中根本没有任何“范围”键……就像它要求整个文件一样!不用说,位作业错误表明服务器响应无效。
我怀疑这完全取决于服务器在响应对象中返回的标头......我很确定我在这里遵循协议。
如果有人可以提供帮助,将不胜感激......同时......我会继续寻找!
问候