您的位置:首页 > 理论基础 > 计算机网络

Error Domain=ASIHTTPRequestErrorDomain Code=8 "Failed to move file from"xxx/xxx"to"xxx/xxx"

2014-08-21 20:46 661 查看
今天真的好高兴呀 我解决了一个折磨了我一周的问题,真的是激动地要哭出来了,为了这个问题,我嘴也烂了,头发抓了一地啊。虽然解决方法,最后还是展现出了“百度”的伟大,但是我还是很开心,在这里我展示一下我的战果

问题的表面就是在2G下下载zip包失败,不是每次都失败,而是只要我离开当前页面再次进入当前页面就会失败(进入requestFail),如果只是离开不进入,那么一起正常。

多么诡异呀,起初我也想通过看看进入页面后是不是进行了什么卑鄙的操作,而导致ASI罢工,可是最后我放弃了,因为任何有关ASI的操作都没有呀,由于原来不是我写的,看了几天没有收获的情况,我找到了新的出路。

其实就是我自己的那字不转个儿了,既然找茬找不出来,就从实际出发解决吧,打印了 requestFail 的error ,有东西出来了 “Error Domain=ASIHTTPRequestErrorDomain Code=8 "Failed to move file from"xxx/xxx"to"xxx/xxx"”说是什么文件移动出了问题,于是百度,谷歌齐下手,发现遇到这个问题的人不多,不过还好有个人自问自答,给出了一个模糊的治标不治本的方法,就是它救了我的命。在这里给出链接可以参考“http://www.cocoachina.com/ask/questions/show/107449/asihttprequestdownloadfileerror”

可是这哥们说的也太模糊了,我首先按照他的方法试了取消了那两个路径的设置,结果真的进入到了requestFinish,这样下载就是成功了,可是怎么获得下载的内容呀?不要和我说什么[request responseData],最开始尝试的就是 结果是null,其实我自己也想到了,他自己的回答看起来像是有个函数可以用,于是我翻看了ASI的函数,还真给我找到了

- (void)setDataReceivedBlock:(ASIDataBlock)aReceivedBlock;


其实看到这个函数的时候我急激动了,感到有救了

在函数里面把收到的data进行拼接,然后在finish里面写入文件夹 ,大功告成。(_receivedDataDic 用来保存拼好的data)

[request setDataReceivedBlock:^(NSData *data)
{
NSMutableData *oldData = nil;
if ([_receivedDataDic objectForKey:key]) {

oldData = [_receivedDataDic objectForKey:key];

[oldData appendData:data];
}else
{
oldData = [NSMutableData dataWithData:data];
}

[_receivedDataDic setObject:oldData forKey:key];

}];


下面的data写入文件夹我这里就不多描述了

-(void) requestFinished:(ASIHTTPRequest *)request
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐