2010-07-23 15 views
1

im actuellement en train d'analyser un fichier xml qui est hébergé sur un autre PC via l'hébergement d'un serveur http Apache qui fonctionne bien. Maintenant, est-il possible de le coder de telle sorte que l'iPhone supprime le fichier xml sur ce PC? Je suis actuellement en train d'utiliser NSMutableURLRequest et de le définir sur un NSData.iPhone - est-il possible de supprimer un fichier xml au serveur après l'avoir analysé

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]; 
+0

Vous pouvez envoyer au serveur une demande de publication qui déclenche la suppression du fichier par le serveur. – Akusete

+0

Est-ce possible avec le serveur http Apache? – Kenneth

Répondre

2

Combien de contrôle avez-vous sur cet autre serveur? Je suppose que vous avez un accès complet. Envisagez simplement de nettoyer périodiquement le code XML. Exécutez un travail cron et supprimez les fichiers toutes les heures après avoir su qu'ils ne sont plus nécessaires. Peut-être créer une liste sur le backend qui se connecte lorsque les données ont été accédées, de sorte qu'il peut être expiré en toute sécurité.

Sans plus de détails sur ce que vous faites, l'approche est difficile à affiner. Pourquoi ne pouvez-vous pas analyser le XML sur l'iPhone, par exemple? Les flux XML peuvent-ils être générés dynamiquement, il n'y a donc pas de fichier à nettoyer? D'où viennent les données XML? Ce n'est pas nécessairement une situation où poster votre code va aider. Vous devriez expliquer comment tout le morceau s'assemble (l'application d'iPhone, le serveur à distance, les données) et ce que vous essayez d'accomplir.

Est-ce même une collection de fichiers XML? Ou est-ce toujours le même? Si c'est juste un fichier, pourquoi devez-vous le supprimer? Il suffit d'écraser l'ancien lorsqu'il est régénéré (et de l'horodater quelque part, donc le client qui le télécharge sait quand il est vraiment obsolète).

2

Seulement si le serveur le permet. Si le serveur Web a la configuration WebDAV correctement, le verbe DELETE, avec l'URL du fichier devrait le faire (en supposant que vous fournissiez les informations d'identification appropriées, puisque c'est une mauvaise idée de laisser n'importe qui supprimer du contenu).

La suppression est presque identique à l'extraction. Remplacez simplement "GET" par "DELETE" et ignorez le contenu renvoyé. Il y a, cependant, la question de l'authentification, qui n'a généralement pas d'importance lors de la lecture d'un site Web, mais qui compte beaucoup quand vous voulez supprimer du contenu sur le site Web. Je ne peux pas vous aider sur ce front, j'ai peur. Considérez également la réponse de @ joost, qui est probablement plus sûre que de permettre aux clients de supprimer des éléments sur le serveur.

+0

S'il vous plaît ne pas poster de code dans les commentaires; c'est pratiquement illisible. Ajoutez-le à votre question. –

+0

Désolé, mon mauvais. Alors, comment dois-je le coder? – Kenneth

+0

C'est encore assez illisible. –