2012-08-07 72 views
1

目前,我們的應用程序的工作方式是下載描述我們所需信息的文本文件。然後我們使用NSURLConnection並請求文本文件描述的一個數據包。然後我們要求下一個數據包,等待它進來,檢查它,然後詢問下一個數據包。從iOS設備上的Web服務器請求數據

有沒有更好的方式來做到這一點沒有文本文件?我覺得我應該可以讓應用程序說,「InformationForJohnDoe」,然後服務器將開始發送JohnDoe的所有數據包,但在這種情況下,我不知道如何知道哪些數據是我的connectionDidFinishLoading委託方法。

Web服務實現是這樣的:

[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; 
     } 

我沒有太大的C#的人。我剛剛開始使用C#和Web服務。

+0

您是否檢查過[這個問題](http://stackoverflow.com/questions/332276/managing-multiple-asynchronous-nsurlconnection-connections)? – Claudio 2012-08-08 00:28:54

+0

這聽起來像你實際要問的是如何改變你的C#web服務不使用文本文件。如果是這樣的話,讓我們更正你的標籤,希望你能得到更好的答案。 – slf 2012-08-08 02:49:33

回答

0

的想法是,你附加到的NSData你NSData的你從

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

方法獲取類定義。

然後,在

- (void)connectionDidFinishLoading:(NSURLConnection *)connection

方法,你知道,所有數據完全加載並投入使用。

- (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 


}