这是canInitWithRequest
在NSURLProtocol
:
+ (BOOL)canInitWithRequest:(NSURLRequest *)request
{
// only handle http requests we haven't marked with our header.
if ([[[request URL] scheme] isEqualToString:@"http"] &&
([request valueForHTTPHeaderField:RNCachingURLHeader] == nil)) {
return YES;
}
return NO;
}
但我也想NSURLProtocol
允许https请求。
我试过了,但所有请求在调用时都失败了:
+ (BOOL)canInitWithRequest:(NSURLRequest *)request
{
// only handle http requests we haven't marked with our header.
if (([[[request URL] scheme] isEqualToString:@"http"] || [[[request URL] scheme] isEqualToString:@"https"]) &&
([request valueForHTTPHeaderField:RNCachingURLHeader] == nil)) {
return YES;
}
return NO;
}
一个示例是具有https方案的登录请求。在上面的函数中,返回YES但是当登录请求被调用时,我在日志中得到这个错误:
错误域=NSURLErrorDomain 代码=-1004 “无法连接到服务器。”
但是,如果我删除https in 的检查canInitWithRequest
,我不会收到任何错误。
我正在使用RNCachingURLProtocol来缓存请求。
我怎样才能做到这一点。