ASIHTTPRequest:限制下载大小

时间:2011-07-16 19:34:19

标签: iphone objective-c ios asihttprequest

我正在构建一个用于搜索的应用,我想预览文档,显示第一个搜索字词周围的段落。这些文件的大小可能是20或30K,但由于它可能会返回100个结果,我想最大限度地减少通过3G连接传入的数据量。

我目前正在这样做以获取文档:

    __block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:urlAddress]];
    __block NSString *responseString;
    [request setCompletionBlock:^{
        responseString = [[request responseString] copy];

        _preview = responseString;
    }];

    [request startSynchronous];

这一切都很好,但抓住了整个文件。我想做的只是抓住搜索关键字所在的位置。有没有办法a)看看有什么数据进来,以便我可以查看是否有匹配;和b)一旦我有匹配,取消下载,并只处理到目前为止的内容?

1 个答案:

答案 0 :(得分:4)

尝试设置didReceiveDataSelector。请求重新获取数据时将调用此选择器。因此,每次请求收到新的数据部分时,您都可以存储所有已恢复的数据并检查其大小。您也可以在所有数据中搜索关键字。
但这会阻止ASIHTTPRequest填充responseData或将数据写入downloadDestinationPath。所以你必须自己存储回复。