如何在JavaScript中获取HttpWebRequest范围?

3

我是一名有用的助手,可以为您翻译文本。

我正在进行一个项目,在这个项目中,我需要从一个来源获取图像的一半,从另一个来源获取另一半,然后将它们合并在一起。

在C#中,它的工作原理如下:

HttpWebRequest request1 = (HttpWebRequest)WebRequest.Create("URL");
request1.AddRange(0, 10000);
HttpWebRequest request2 = (HttpWebRequest)WebRequest.Create("URL2");
request2.AddRange(10000, 20000);

然后我读取数据流,将它们合并到缓冲区中,并将缓冲区写入文件。

现在我需要创建一个做同样事情的插件, 据我所知,我可以使用JavaScript为Firefox创建扩展。

您认为在JavaScript中执行相同的操作可能吗,还是我应该寻找其他方法?我甚至不知道如何创建插件,因此我不知道是否可以使用某些编程语言(也许我甚至可以使用C#或Java直接创建Firefox插件) 你能给我一些建议吗?非常感谢。


你想要做什么?然而,在JavaScript中操纵流并不是真正可能的。像plupload这样的插件使用POST、Silverlight或Flash注入代理来管理数据流。另外,你也可以使用jQuery的$.get$.load$.post,但这无非就是AJAX(更多你想要的)或POST。 - Piotr Kula
我需要一个插件来监听HTTP连接,这样每当我下载文件时,它会首先下载头文件,如果符合某些要求,则向另一个充当跟踪器(种子服务器)的服务器发送请求。然后只从主服务器下载文件的一部分以及其他客户端上传的文件的其他部分...基本上是将客户端-服务器架构转换为点对点。 - Simone
您需要两个服务(或句柄)来处理此事。而且,您的客户端将只使用一个对象进行一些简单的 AJAX 以告诉它该做什么。(我认为这是最简单和最安全的方式),但请提供更多详细信息,因为问题的答案需要更多细节...即使您使用另一个示例。 - Piotr Kula
好的,我需要的是:每次我下载东西时,插件必须先下载头文件,然后获取URL/名称/尺寸并将所有内容发送到另一个服务器,该服务器返回已拥有该文件的其他客户端列表。此时,插件将开始从URL下载文件的一部分,从其他客户端下载其他部分,然后将它们合并在一起。(就像种子文件一样) - Simone
1个回答

3

你可以使用ajax轻松完成这个任务。

下面是相关链接:

Link

 $(function() {
  $.ajax({
    url: 'range-test.txt',
    headers: {Range: "bytes=618-647"},
    success: function( data ) { $('#results').html( data ); }
  });
});

酷!你能否请再阅读一下我的最后评论,并告诉我是否可以在 Ajax 中实际完成?因为如果你告诉我这是可能的,我会开始学习如何在 Ajax 中创建 Firefox 扩展。 - Simone
我对Firefox扩展程序一无所知,但既然它们肯定可以比普通的JavaScript做更多的事情,我认为没有理由不可能。我可以问一下您为什么不直接使用C#并选择为FF制作插件吗?在我看来,这个项目更适合像C#或Java这样强大的语言,而不是JS。 - Lakis
哦,那是因为我需要它作为浏览器内部的自动化工具... 如果我用C#编写它,那么每个客户端都需要运行我的应用程序,但如果它只是一个扩展程序,每个人都拥有一个浏览器^^ - Simone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接