如果您只是在调试,请将 CFNETWORK_DIAGNOSTICS 环境变量设置为 3,例如
setenv("CFNETWORK_DIAGNOSTICS", "3", 1);
在您的应用程序的开头,在您调用可能导致 CFNetwork 框架代码加载的任何内容之前(即在main的开头)。您应该在控制台中获取 URL。
如果您需要在运输应用程序中以允许您远程调试它的方式执行此操作,请全局注册一个NSURLProtocol对象,并在canInitWithRequest:方法中打印该值并返回 NO。这应该在过程中尽早发生,即使启用了严格的传输安全性,它也可以工作。
例子:
@interface MyProtocol: NSURLProtocol
@end
@implementation MyProtocol
+ (BOOL)canInitWithRequest:(NSURLRequest *)request
{
NSLog(@"Request: %@\n", request); // Log it in whatever way you need.
return NO;
}
@end
...
// Somewhere else, e.g. in applicationDidFinishLaunching:, do this:
[NSURLProtocol registerClass:[MyProtocol class]];
无法保证订购,但失败的 URL 可能会在失败之前大致打印出来。