我正在编写一个使用以下命令与服务器连接的应用程序NSURLConnection
.
在委托方法中didreceiveresponse
,如果状态代码为 404,我会取消连接,并且希望显示一条消息,其中包含服务器中生成的自定义错误。
问题是,从响应对象中,我只能获取状态码、标头、mimetype 等,但不能获取正文。
我如何获取正文消息NSURLResponse
?
为什么要取消连接?毕竟,404 也可以有内容主体。只是不要取消它,让程序调用下一个委托 NSURLConnection 方法。
当数据[内容主体]发送时- (void)connection:(NSURLConnection *) didReceiveData:(NSData *)
被调用时,您需要检索那里的数据。阅读文档中的相应部分 http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/URLLoadingSystem/Concepts/URLOverview.html:
服务器对请求的响应可以视为两部分:描述内容的元数据和 URL 内容数据。大多数协议通用的元数据由 NSURLResponse 类封装,由 MIME 类型、预期内容长度、文本编码(如果适用)和提供响应的 URL 组成。
NSURLConnection 和 NSURLDownload 类提供了建立由 NSURLRequest 对象指定的连接并下载内容的接口。NSURLConnection 对象在从原始源接收数据时向委托提供数据,而 NSURLDownload 对象将请求数据直接写入磁盘。这两个类都提供广泛的委托支持来响应重定向、身份验证质询和错误条件。
至于委托实现示例:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)theData{
NSLog(@"String sent from server %@",[[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding]);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)