ios - 打印 NSURLRequest 正文/查询总是打印 null

标签 ios objective-c http afnetworking

我正在使用 AFNetworking 发出网络请求。我将 NSURLProtocol 子类化,并对其进行方法调整以覆盖默认的 NSURLSessionConfiguration 并添加我的协议(protocol)类以拦截 Web 请求。当调用 canInit 时,我尝试打印请求数据,特别是我想要正文和查询,但它总是为两者打印 null。我知道请求已被正确拦截,它们只是没有任何正文/查询数据。有人知道为什么吗?我该如何获取 body 数据?

最佳答案

所以在做了一些研究之后,我发现苹果文档对 NSURLRequests body 和 bodystream 是这样说的:

The receiver will have either an HTTP body or an HTTP body stream, only one may be set for a request. A HTTP body stream is preserved when copying an NSURLRequest object, but is lost when a request is archived using the NSCoding protocol.

因此,在检查了 httpbodystream 之后,我发现那是存储实际主体的地方。我必须复制输入流,将其转换为数据,再将其转换为字符串并打印。这是我如何做到这一点的引用:

How to convert NSInputStream to NSString or how to read NSInputStream

关于ios - 打印 NSURLRequest 正文/查询总是打印 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41289891/

相关文章:

ios - NSMutableIndexSet 添加索引 : Method Throws Error

ios - 如何在 Firebase 远程配置中使用字符串而不是 plist 设置默认值?

objective-c - 无法将文件保存到磁盘,不知道为什么

ios - 如何在 Objective C 的 TableView 中调用 CollectionView 的委托(delegate)方法?

jquery - 混合 HTTP/HTTPS 网站的集成问题

javascript - Nativescript 是如何工作的?

ios - 使用 AFNetworking 上传多个图像或文件,

javascript - Javascript 中的语法高亮

php - Symfony2 - file_get_contents() 在同一项目 api url 上失败

iOS NSURLConnection JSON 失败