ASIHttpRequest - 移动到实时 PHP 服务器后不创建临时文件
Posted
技术标签:
【中文标题】ASIHttpRequest - 移动到实时 PHP 服务器后不创建临时文件【英文标题】:ASIHttpRequest - Not creating temp file after moving to live PHP server 【发布时间】:2013-01-25 11:04:41 【问题描述】:我正面临这个奇怪的问题。在点击一个按钮时,我正在从我的 php 服务器下载媒体文件,例如图像、视频和音频。对于下载部分,我使用ASIHTTPRequest
。
我使用此代码恢复下载:
NSString *audio_url_f = [myDetailPeom poem_audio_url];
NSURL *url = [NSURL URLWithString:audio_url_f];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request setShouldContinueWhenAppEntersBackground:YES];
[request setNumberOfTimesToRetryOnTimeout:3];
[request setDelegate:self];
//
NSString *path = [NSString stringWithFormat:@"%@/Documents/%@",NSHomeDirectory(),fileName];
path = [path stringByAppendingString:@".download"];
// This file has part of the download in it already
[request setTemporaryFileDownloadPath:path];
[request setAllowResumeForFileDownloads:YES];
[request setDownloadDestinationPath:filePath];
//
[request setUserInfo:[NSDictionary dictionaryWithObject:@"audio" forKey:@"type"]];
[request setDidFinishSelector:@selector(requestFinished:)];
[request setDidFailSelector:@selector(requestFailed:)];
[request startAsynchronous];
如果网络出现故障,下载将停止并正常恢复。部分下载的文件是在正确的位置创建的,文件名中附加了.download
。一旦网络可用,它会正常恢复下载。
现在我将我的 Web 应用程序移至实时 PHP 服务器(两者都在同一台服务器上)。但部分文件根本没有创建。
【问题讨论】:
不考虑您的问题,但考虑切换到其他框架,例如AFNetworking
。 ASIHTTP
不再由作者维护/支持
【参考方案1】:
除非您在 URL 中犯了错误,否则极不可能。大多数时候犯的一个常见错误是在移动到实时服务器时,如果它的 HTTPS 应该在 ASI 中正确处理。如果是这样,请尝试将 setValidatesSecureCertificate 设置为 NO。
由于不推荐使用 ASIHttpRequest,您应该根据需要考虑迁移到 AFNetworking 或 RestKit 或其他一些框架。
【讨论】:
其实直播服务器不是HTTP。 你能调试这个吗? 我尽力了,当连接到实时服务器时,它根本没有创建 .download 文件。【参考方案2】:试试这个代码来获取文档目录?
NSString *documentDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *path= [documentDirectory stringByAppendingPathComponent:@"test.download"];
最好使用缓存目录而不是文档目录。
【讨论】:
【参考方案3】:这会发生在您的场景中吗?
ASIHTTPRequest setTemporaryFileDownloadPath: not working with some URL's
检查这个是否重定向。
【讨论】:
以上是关于ASIHttpRequest - 移动到实时 PHP 服务器后不创建临时文件的主要内容,如果未能解决你的问题,请参考以下文章