- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在编写一个使用 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/
我用这个向 web 服务器发出 http 请求: NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [N
我正在向这个地址发送一个对象:https://sandbox.itunes.apple.com/verifyReceipt 与 NSUrlconnection我正在尝试使用此委托(delegate)方
我有一个简单的 NSURLRequest: [NSURLConnection sendAsynchronousRequest:myRequest queue:queue completionHandl
我在特定文件夹上设置了 NSURLCache(../../Application Support/Offline 所以它不会被操作系统随机删除),然后我发送一个带有 NSURLRequestRetur
我正在尝试在发出后续请求之前处理每个请求的数据。这里有两个方法,第二个方法是在第一个方法中使用 dispatch_semaphore 调用的,以确保请求完成,但是,这不会等到响应实际被接收/处理后才会
下载文件时,我希望能够继续下载。例如: NSFileManager *fm = [NSFileManager defaultManager]; NSString *downloadTempPath =
我在 HTTP header 中使用 if-modified-since 来决定是否应该下载文件。应用程序已经过测试,一切正常,但现在当我询问我的 NSHTTPURLResponse 实例 respo
我有一个验证用户身份的好方法,但是我不知道如何获取请求的状态代码。当我执行 NSLog(@"%@", response); 时,我可以清楚地看到它存在,但我找不到任何方法将其拉出来。有没有一种方法,还
我需要修改 NSURLResponse 中的响应 header 。这可能吗? 最佳答案 我刚刚和一个 friend 讨论过这个问题。我的建议是编写 NSURLResponse 的子类。大致如下: @i
正如 Apple 文档所述,如果协议(protocol)实现未将内容长度报告为响应的一部分,则 NSURLResponse 的 expectedContentLength 可能不会返回该值。那么,有没
我正在尝试找出如何从我的 http 响应中解析 JSON。目前我正在使用 NSURLSession 任务来发送发布请求并获得如下响应和结果: NSURLSessionConfiguration *de
请原谅我问这个愚蠢的问题,但是有人可以告诉我 NSURLResponse 和 NSHTTPURLResponse 之间有什么区别 最佳答案 "NSURLResponse declares the pr
我正在创建一个在每个 View Controller 上调用 Web 服务的应用程序。该应用程序在模拟器上运行良好,但在实际设备上,它运行速度非常慢,或者有时会返回空响应,这就是应用程序因服务器的
如果我的应用程序是从 AppStore 下载的,那么在加载网页时它会经常崩溃,但我无法在 Debug模式下重复崩溃。崩溃日志说: -[NSURLResponse allHeaderFields]: u
我正在向 API 发出 POST 请求,并在 Swift 中成功获得响应。下面是我的代码。 private func getData(url: NSURL) { let config: NSU
这是我的下载代码: let url = NSURL(string:"http://www.zastavki.com/pictures/originals/2013/Photoshop_Image_of
我覆盖了 NSURLProtocol 并且需要返回带有特定状态码的 HTTP 响应。 NSHTTPURLResponse 没有 statusCode setter ,所以我尝试用以下方法覆盖它: @i
我正在编写一个使用 NSURLConnection 与服务器连接的应用程序。 在委托(delegate)方法 didreceiveresponse 中,如果状态代码为 404,我将取消连接并显示一条消
我看过很多代码,包括 Apple 的 SimpleURLConnections 示例,它们只是将任何 NSURLResponse 转换为 NSHTTPURLResponse。如果它始终是 NSHTTP
我在这方面相当陌生.. 我有一个运行的 tomcat 服务器,我有一个 web 服务方法,当被调用时,返回一个字符串。当我尝试使用 NSOperationQueue *backgroundQueue
我是一名优秀的程序员,十分优秀!