これは次の場所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;
}
しかし、 httpsリクエストもNSURLProtocol
許可したいのです。
私はこれを試しましたが、呼び出されるとすべてのリクエストが失敗します:
+ (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;
}
1 つの例は、 httpsスキームを持つログイン要求です。上記の関数ではYESが返されますが、ログイン要求が呼び出されると、ログに次のエラーが表示されます。
エラー Domain=NSURLErrorDomain Code=-1004 「サーバーに接続できませんでした。」
ただし、 httpsのチェックを外すとcanInitWithRequest
、エラーは発生しません。RNCachingURLProtocol
を
使用してリクエストをキャッシュしています。
どうすればこれを達成できますか。