gpt4 book ai didi

objective-c - 我怎样才能得到 NSURLResponse 正文?

转载 作者:太空狗 更新时间:2023-10-30 03:09:20 24 4
gpt4 key购买 nike

我正在编写一个使用 NSURLConnection 与服务器连接的应用程序。

在委托(delegate)方法 didreceiveresponse 中,如果状态代码为 404,我将取消连接并显示一条消息,其中包含服务器中生成的自定义错误。

问题是,从响应对象中,我只能得到状态码、标题、mimetype 等,但没有正文。

如何从 NSURLResponse 获取正文消息?

最佳答案

为什么要取消连接?毕竟,404 也可以有内容主体。只是不要取消它,让程序调用下一个委托(delegate) NSURLConnection 方法。当发送数据 [内容主体] 时 - (void)connection:(NSURLConnection *) didReceiveData:(NSData *) 被调用,您需要在那里检索数据。 Read corresponding part in the docs :

服务器对请求的响应可以看作两部分:描述内容的元数据和 URL 内容数据。 大多数协议(protocol)通用的元数据由 NSURLResponse 类封装,由 MIME 类型、预期内容长度、文本编码(如果适用)和提供响应的 URL 组成。

NSURLConnection 和 NSURLDownload 类提供接口(interface)来建立由 NSURLRequest 对象指定的连接并下载内容。NSURLConnection 对象在从原始源接收到数据时向委托(delegate)提供数据,而NSURLDownload 对象将请求数据直接写入磁盘。这两个类都为响应重定向、身份验证挑战和错误条件提供了广泛的委托(delegate)支持。

关于示例委托(delegate)实现:

-   (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)theData{
NSLog(@"String sent from server %@",[[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding]);

}

关于objective-c - 我怎样才能得到 NSURLResponse 正文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3014206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com