我正在编写一个使用NSURLConnection
.
在委托方法didreceiveresponse
中,如果状态码是 404,我会取消连接,我想显示一条消息,其中包含在服务器中生成的自定义错误。
问题是从响应对象中,我只能获取状态码、标题、mimetype 等,但没有正文。
如何从中获取正文消息NSURLResponse
?
我正在编写一个使用NSURLConnection
.
在委托方法didreceiveresponse
中,如果状态码是 404,我会取消连接,我想显示一条消息,其中包含在服务器中生成的自定义错误。
问题是从响应对象中,我只能获取状态码、标题、mimetype 等,但没有正文。
如何从中获取正文消息NSURLResponse
?
为什么取消连接?毕竟404也可以有内容体。只是不要取消它,让程序调用下一个委托 NSURLConnection 方法。当- (void)connection:(NSURLConnection *) didReceiveData:(NSData *)
调用发送数据[内容正文]时,您需要在那里检索数据。阅读文档中的相应部分:
服务器对请求的响应可以被视为两部分:描述内容的元数据和 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]);
}