如何通过NSURLConnection的连接使webservice传递错误:didFailWithError:?

ede*_*y05 4 web-services nsurlconnection ios

Web服务需要做什么才能使NSURLConnection's委托接收connection:didFailWithError:消息?

例如:iOS应用程序将令牌传递给Web服务,Web服务查找令牌,然后Web服务需要响应错误"无效令牌"或类似内容.

目前,接收数据,并在" connectionDidFinishLoading:"中解析错误消息.这意味着我在两个地方进行错误检查,我试图避免.

我完全掌控着iOS应用和网络服务.

Jef*_*mas 5

根据我的经验(编程中最危险的三个词),-connection:didFailWithError:只有在HTTP交换失败时才会被调用.这通常是网络错误或可能是身份验证错误(我不使用身份验证).如果HTTP消息成功,则无论响应代码-connectionDidFinishLoading:是否被调用.

我的解决方案:-connection:didFailWithError:当我检测到错误时调用.这样我所有的错误处理代码都在一个地方.

在我的顶部-connectionDidFinishLoading:,我有:

NSError *error;
NSDictionary *result = [self parseResultWithData:self.connectionData error:&error];
if (!result) {
    [self connection:connection didFailWithError:error];
    return;
}
Run Code Online (Sandbox Code Playgroud)