我是新手MKNetworkKit,但我已经能够将它添加到我的项目中,除非处理可达性更改,否则它完全正常工作.
情况如下:
POST也通过创建一个MKNetworkOperationfrom我的MKNetworkEngine子类来请求(使用)一些数据.在请求数据之前,操作被设置为freezable(根据Mugunth Kumar的文档).checkAndRestoreFrozenOperationsin MKNetworkEngine并且它检测到有一个挂起的操作(创建的没有可达性),它尝试入队.onCompletion块永远不会被调用.有什么我不明白冻结操作+可达性MKNetworkKit吗?冻结是否仅适用于请求开始后可达性发生变化的操作?或者我应该实现自己的可达性更改块?
这是我的MKNetworkEngine子类中的代码,它创建操作并启动请求.请注意,不相关的代码已被禁止.
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObject:@"value" forKey:@"param"];
MKNetworkOperation *op = [self operationWithPath:MYPATH
params:params
httpMethod:@"POST"];
[op setFreezable:YES];
[op onCompletion:^(MKNetworkOperation *completedOperation) {
// ...
// Here is where I process response and send the result to my completion block
// It's called when WiFi is available, but not called otherwise.
// ... …Run Code Online (Sandbox Code Playgroud) 我们的旧应用程序使用MKNetworkKit和MKNetworkOperation.
现在在iOS 7下kSecTrustResultConfirm已弃用.在MKNetworkOperation中,有以下代码:
else if(result == kSecTrustResultConfirm) { // DEPRECATED
if(self.shouldContinueWithInvalidCertificate) {
// Cert not trusted, but user is OK with that
DLog(@"Certificate is not trusted, but self.shouldContinueWithInvalidCertificate is YES");
[challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];
} else {
DLog(@"Certificate is not trusted, continuing without credentials. Might result in 401 Unauthorized");
[challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge];
}
}
Run Code Online (Sandbox Code Playgroud)
有更换kSecTrustResultConfirm吗?
我正在尝试使用MKNetworkEngine,但标题谈论缓存.这对我的应用程序来说是完全不好的,它需要下载货币汇率JSON文件和缓存是不行的.
有没有办法为整个MKNetworkEngine实例关闭缓存?
我遇到了MKNetworkKit缓存的非常不寻常的问题.简单来说,问题是"它不起作用"..!
我创建了一个有问题的简单测试项目.该项目什么都不做,但只是向http://where.yahooapis.com/提出简单的GET请求,以获取城市名称的地址或信息.响应,应该在第一次运行时被追逐,并且从第二次调用完成处理程序两次,一次使用缓存响应,再一次使用获取的响应.正如您在下面看到的,它取自http://blog.mugunthkumar.com/coding/ios-tutorial-image-cache-and-loading-thumbnails-using-mknetworkkit/
如果您是第二次拨打电话,MKNetworkKit会使用缓存数据调用SAME完成处理程序.当网络连接正常时,MKNetworkKit会两次调用完成处理程序.首先使用缓存数据,然后在从服务器获取最新数据之后再次使用.
好吧,不寻常的是,我运行应用程序,它没有缓存,我再次运行应用程序,它再次没有缓存,经过一些随机运行突然缓存开始工作.我删除了应用程序并再次运行它,缓存不会工作,直到一些随机运行和问题重复..!
仅供参考,我使用了从GIT下载的最新MKNetworkkit .
我不确定我的代码是否有问题,或者是MKNetworkKit本身的错误.所以请仔细阅读代码,并告诉我它是否是导致此问题的MKNetworkKit.
以下是下载示例项目的链接[https://www.box.com/s/tsfw3z0avpti051xbyhv] 4
预先感谢.