【发布时间】:2017-12-28 07:06:52
【问题描述】:
当我使用 NSURLProtocol 捕获来自 WKWebView 的请求时,正文丢失了。有什么办法可以解决这个问题?
【问题讨论】:
标签: ios objective-c wkwebview nsurlprotocol
当我使用 NSURLProtocol 捕获来自 WKWebView 的请求时,正文丢失了。有什么办法可以解决这个问题?
【问题讨论】:
标签: ios objective-c wkwebview nsurlprotocol
NSURLRequest 对象在协议中永远不会有正文数据。您必须改为获取正文流,打开它,然后以流方式读取数据。
为了获得最佳性能,您还应该将该数据重新发送到新绑定流对的写入端,并将读取端作为新请求中的主体流提供。 (使用 Core Foundation API 中的 CFStreamCreateBoundPair 函数并使用桥接转换将 CFStreamRef 对象转换为 NSStream 对象。)
【讨论】:
initWithRequest:cachedResponse:client: 中存储对流的引用,创建流对并分配自定义流委托类实例以在startLoading 中为其提供数据,并在stopLoading 中停止任何正在进行的加载。