0

我目前正在使用 MKNetworkKit 来缓存从 restful 服务器下载的几个图像。我有另一个宁静的服务,我 ping 以获取有关图像的补充信息。无论我首先 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)
{}....
4

1 回答 1

1

您应该在 AppDelegate 中为您与之交谈的“每个”服务器创建一个 MKNetworkEngine 对象。

self.imageCacheEngine = [[MKNetworkEngine alloc] initWithHostName:@"images.myserver.com"];

self.apiEngine =  [[MKNetworkEngine alloc] initWithHostName:@"api.myserver.com"];

将图像请求排队到 imageCacheEngine 和 api 请求到您的 apiEngine。

于 2012-08-13T09:16:24.970 回答