标签: mknetworkengine

当可达性改变时,MKNetworkKit操作不会恢复/完成

我是新手MKNetworkKit,但我已经能够将它添加到我的项目中,除非处理可达性更改,否则它完全正常工作.

情况如下:

  1. 我禁用WiFi并运行应用程序.
  2. 即使没有可达性,我POST也通过创建一个MKNetworkOperationfrom我的MKNetworkEngine子类来请求(使用)一些数据.在请求数据之前,操作被设置为freezable(根据Mugunth Kumar的文档).
  3. 在启用WiFi后,调用checkAndRestoreFrozenOperationsin MKNetworkEngine并且它检测到有一个挂起的操作(创建的没有可达性),它尝试入队.
  4. 之后,我的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)

network-programming ios mknetworkkit mknetworkengine

6
推荐指数
1
解决办法
2172
查看次数

iOS 7中kSecTrustResultConfirm的替代方案是什么?

我们的旧应用程序使用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吗?

security iphone ios mknetworkkit mknetworkengine

5
推荐指数
1
解决办法
1514
查看次数

如何禁用MKNetworkKit或MKNetworkEngine中的缓存?

我正在尝试使用MKNetworkEngine,但标题谈论缓存.这对我的应用程序来说是完全不好的,它需要下载货币汇率JSON文件和缓存是不行的.

有没有办法为整个MKNetworkEngine实例关闭缓存?

iphone networking ipad ios mknetworkengine

2
推荐指数
1
解决办法
1884
查看次数

MKNetworkKit缓存不起作用

我遇到了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

预先感谢.

ios ios5 ios6 mknetworkkit mknetworkengine

1
推荐指数
1
解决办法
1963
查看次数