1

現在、正常に動作するApache httpサーバーをホストすることにより、別のPCでホストされているxmlファイルを解析しています。iPhoneがそのPCのxmlファイルを削除するようにコーディングすることは可能ですか?

現在、NSMutableURLRequest を使用して NSData に設定しています。

NSError * error; 
NSURLResponse * response;

NSMutableURLRequest *request =
    [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://ipaddress/UserBedData.xml"]
                            cachePolicy:NSURLRequestReloadIgnoringCacheData
                        timeoutInterval:5.0];
[request setHTTPMethod:@"GET"];         
NSData * responseData = [NSURLConnection sendSynchronousRequest:request
                                              returningResponse:&response
                                                          error:&error];
xmlParser = [[NSXMLParser alloc] initWithData:responseData];
4

2 に答える 2

2

サーバーが許可した場合のみ。Web サーバーに WebDAV が適切に設定されている場合は、ファイルの URL を指定した動詞 DELETE で実行できます (適切な資格情報を提供すると仮定します。だれでもコンテンツを削除できるようにするのは悪い考えであるため)。

削除はフェッチとほぼ同じです。返されたコンテンツを置き換え"GET""DELETE"無視するだけです。ただし、認証の問題があります。これは通常、Web サイトを読むときは問題になりませんが、Web サイトのコンテンツを削除する場合は非常に重要になります。残念ながら、その面ではあなたを助けることはできません。@joost の回答も検討してください。これは、クライアントがサーバー上のものを削除できるようにするよりもおそらく安全です。

于 2010-07-23T02:22:48.267 に答える
2

この他のサーバーをどの程度制御できますか? 私はあなたがフルアクセス権を持っていると仮定します。

単純に XML を定期的にクリーンアップすることを検討してください。cron ジョブを実行し、不要になったファイルを 1 時間ごとに削除します。データがアクセスされたときにログを記録するリストをバックエンドに作成して、安全に期限切れにできるようにすることもできます。

何をしているかについての詳細がなければ、アプローチを絞り込むのは困難です。たとえば、iPhone で XML を解析できないのはなぜですか? XML フィードを動的に生成できるので、クリーンアップするファイルはありませんか? XML データはどこから来ていますか? これは、コードを投稿することが必ずしも役立つ状況ではありません。すべての要素 (iPhone アプリ、リモート サーバー、データ) がどのように組み合わされ、何を達成しようとしているのかについて詳しく説明する必要があります。

それは XML ファイルのコレクションでもありますか? それともいつも同じですか?ファイルが 1 つだけの場合、なぜそれを削除する必要があるのですか? 再生成されたときに古いものを上書きするだけです(そして、どこかに日付スタンプを付けて、ダウンロードしたクライアントが本当に古くなったことを認識できるようにします)。

于 2010-07-23T04:04:40.610 に答える