我正在使用 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/