iOS网址响应bool

时间:2014-02-27 10:19:23

标签: ios objective-c nsurlconnection nshttpurlresponse

返回true或false的网络网络服务,但我不知道如何在我的IOS应用程序中捕获该响应。

我的服务更新了数据库中的数据,我知道它可以正常运行,数据得到更新,它会抓住问题的响应,我想知道我可以告诉用户是否出现了问题。

对于那些了解c#的bool方法,只需简单的尝试catch并返回true或false。

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    //What to write here to catch my true or false
    if(response) {
       //true
    } else {
       //false
    }
}

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

您应该检查响应的HTTP状态代码,例如:

NSInteger statusCode = [(NSHTTPURLResponse*)response statusCode];

成功请求的状态代码使用范围[200..299]。

例如,成功的GET请求将以 200(OK)表示。

成功的POST请求将以 201(已创建)表示。

成功的DELET请求将以 204(无内容)表示..

另请参阅:wiki List of HTTP status codes

此外,您需要检查服务器发送给您的数据类型:

NSString* mimeType = [response MIMEType];

服务器在响应的Content-Type标题中发送了mime类型。

另见wiki MIME Internet Media Type

您实际获得的完全取决于您的请求和服务器。

例如,服务器可能始终使用JSON作为内容类型进行回答。在这种情况下,响应的标头Content-Type将为application/json。代表答案的实际JSON也将与状态代码相关。

为了向用户提供良好的人类可读消息,您需要查阅Web服务API并确定其指定方式。某些Web服务API可能具有相当大的API。不幸的是,一些Web服务缺乏全面的文档。

答案 1 :(得分:0)

您应该实现connection:didReceiveData:来获取和保存NSData,– connectionDidFinishLoading:可以将接收到的数据解释为BOOL。

基本上didReceiveResponse:只能告诉您服务器对您的请求的响应,而不是整个答案。