0

net web 服务返回真或假,但我不知道如何在我的 IOS 应用程序中捕获该响应。

我的服务更新数据库中的数据,我知道它可以工作,数据得到更新,它捕捉到问题的响应,我想知道这样我可以告诉用户是否出现问题。

对于那些知道 c# 它是一个 bool 方法的人,只需简单的 try 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
    }
}

谢谢您的帮助

4

2 回答 2

0

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

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

于 2014-02-27T11:34:54.343 回答
0

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

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

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

例如,成功的 GET 请求将显示为200 (OK)

成功的 POST 请求将显示为201 (Created)

成功的 DELET 请求将显示为204(无内容) ..

另请参阅:wiki HTTP 状态代码列表

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

NSString* mimeType = [response MIMEType];

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

另请参阅 wiki MIME Internet 媒体类型

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

例如,服务器可能总是以 JSON 作为内容类型来回答。在这种情况下,响应的标Content-Typeapplication/json. 代表答案的实际 JSON 也将与状态代码相关。

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

于 2014-02-27T10:43:55.243 回答