2011-07-27 8 views
2

ASIHTTPRequestに問題があります。ユーザーがネットワークを使用せずに起動するときに使用できるUIWebviewでiphoneアプリケーションを開発しようとしています。ASIHTTPRequestオフラインモード接続エラー

このライブラリは完璧ですが、オフラインでアプリを起動するとエラーが発生します。

Error Domain=ASIHTTPRequestErrorDomain Code=1 UserInfo=0x17bdb0 "A connection failure occurred" 

これが起こる理由は、私は(それがキャッシュにダウンロードされることを意味)一度私のアプリを立ち上げて、私は私のiPhoneのAppフォルダにthrought SSHを行くとき、私はすべてのキャッシュされたデータを見ることができるので、私は見つけることができません。

なぜ私はiPhoneを飛行機モードに入れたら、このメッセージが表示されますか?ここで

は、要求を行う(非常に簡単)私のコードです:

NSURL *url = [NSURL URLWithString:@"http://mywebsite.com"]; 
    [[self request] setDelegate:nil]; 
    [[self request] cancel]; 
    [self setRequest:[ASIWebPageRequest requestWithURL:url]]; 
    [[self request] setShouldAttemptPersistentConnection:NO]; 
    [[self request] setDelegate:self]; 
    [[self request] setDidFailSelector:@selector(webPageFetchFailed:)]; 
    [[self request] setDidFinishSelector:@selector(webPageFetchSucceeded:)]; 

    [[self request] setUrlReplacementMode:ASIReplaceExternalResourcesWithData]; 
    [request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy]; 

    [[self request] setDownloadCache:[ASIDownloadCache sharedCache]]; 

    [[self request] setDownloadDestinationPath: 
    [[ASIDownloadCache sharedCache] pathToStoreCachedResponseDataForRequest:[self request]]]; 

    [[self request] startAsynchronous]; 

私は、問題がどこにあるか私は理解していない理由です、documentationからサンプルを取りました。

ありがとうございました。

答えて

0

すべてのデータがキャッシュされていることを確認しましたか? サーバーは、HTTPキャッシュ制御ヘッダーを設定することでページをキャッシュできないようにすることができます。「no-cache」「no-store」、プラグマ「no-store」

キャッシュされていてもキャッシュからは配信できません。これは、後続の要求の時点までにキャッシュされたデータが期限切れになったときです。あなたはキャッシュポリシーを設定することで、後を検証することがあります。

[request setCachePolicy:ASIDontLoadCachePolicy]; 

ASIDontLoadCachePolicyを - キャッシュされたデータが存在する場合は、それが古くなっている場合でも、それを使用しています。キャッシュされたデータが存在しない場合は停止します(要求にエラーは設定されません)