2012-08-07 3 views
1

Actuellement, notre application fonctionne en téléchargeant un fichier texte qui décrit les informations que nous recherchons. Ensuite, nous utilisons NSURLConnection et demandons un paquet que le fichier texte décrit. Ensuite, nous demandons le paquet suivant, attendons qu'il entre, vérifie-le, puis demande le paquet suivant.Demande de données à partir d'un serveur Web sur un appareil iOS

Existe-t-il un meilleur moyen de le faire sans le fichier texte? Je pense que je devrais être en mesure d'avoir l'application dit, "InformationForJohnDoe", puis le serveur commencera à envoyer tous les paquets pour JohnDoe, mais dans ce scénario, je ne sais pas comment je saurais quelles données sont en ma méthode de connexion connectionDidFinishLoading.

La mise en œuvre du service Web ressemble à ceci:

[WebGet(UriTemplate = "GetTestData/{file}")] 
     public Stream GetTestData(string file) 
     { 

      string fileName = 
       "\\testdirectory" + file; 
      if (File.Exists(fileName)) 
      { 
       FileStream stream = File.OpenRead(fileName); 
       if (WebOperationContext.Current != null) 
       { 
        WebOperationContext.Current.OutgoingResponse.ContentType = "text/.txt"; 
       } 
       return stream; 
      } 
      return null; 
     } 

Je ne suis pas beaucoup d'une personne C#. Je viens juste de commencer en C# et les services web.

+0

Avez-vous vérifié [cette question] (http://stackoverflow.com/questions/332276/managing-multiple-asynchronous-nsurlconnection-connections)? – Claudio

+0

Il semble que ce que vous demandez réellement, c'est comment changer vos services Web C# pour ne pas utiliser le fichier texte. Si c'est le cas, corrigeons vos tags, donc j'espère que vous obtiendrez une meilleure réponse. – slf

Répondre

0

l'idée est que vous ajoutez à un NSData que vous définissez dans la classe la NSData que vous obtenez de la méthode

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

.

Ensuite, dans la méthode

- (void)connectionDidFinishLoading:(NSURLConnection *)connection

, vous savez que toutes les données sont complètement chargé et prêt à l'emploi.

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{ 
    NSLog(@"Connection didReceiveData of length: %u", data.length); 
    [self.dataData appendData:data]; 
} 

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    // do seomething with self.dataData 


} 
Questions connexes