我目前正在使用MKNetworkKit来缓存来自安静服务器的多个图像的下载。我有另一个宁静的服务我ping以获得有关图像的补充信息。无论我首先运行哪台服务器,但在ping第二台服务器时,我都会收到以下错误:
[操作无法完成。 (NSURLErrorDomain错误404.)] 2012-08-12 19:51:12.340 [51853:11603]
错误:错误域= NSURLErrorDomain代码= 404“操作无法完成。(NSURLErrorDomain错误404.)”UserInfo = 0x73c5490 {Server = Apache-Coyote / 1.1,Content-Length = 47,Content-Type = text / html; charset = ISO-8859-1,Connection = keep-alive,Date = Sun,2012年8月12日23:51:11 GMT} 2012-08-12 19:51:12.341 [MKNetworkOperation operationFailedWithError:] [Line 1280]状态:0
MKNetworkKit正在ping第一台服务器,试图从第二台服务器的URL获取数据。我想我可能需要创建另一个可达性对象?知道我做错了什么吗?或者我可以在哪里找到一个具有多个子类的项目的示例实现?
修改的 我通过以下方式实现两个引擎:
@implementation FirstEngine
FirstEngine* _sharedEngine;
+(FirstEngine*)sharedEngine
{
if(_sharedEngine==nil)
{
_sharedEngine = [[FirstEngine alloc] initWithHostName:@"***.**.**.**" customHeaderFields:nil];
}
return _sharedEngine;
}
以这种方式调用它们:
$[[FirstEngine sharedEngine] bodyForPath:url verb:verb body:params onCompletion:^(NSDictionary* body)
{}....
或
$[[SecondEngine sharedEngine] bodyForPath:url verb:verb body:params onCompletion:^(NSDictionary* body)
{}....
答案 0 :(得分:1)
您应该在AppDelegate中为与您交谈的“每个”服务器创建一个MKNetworkEngine对象。
self.imageCacheEngine = [[MKNetworkEngine alloc] initWithHostName:@"images.myserver.com"];
和
self.apiEngine = [[MKNetworkEngine alloc] initWithHostName:@"api.myserver.com"];
将图像请求排入imageCacheEngine并向apiEngine发送api请求。