2010-06-30 31 views

回答

1

聽起來像你正在寫一個iPhone應用程序?

對此,您不需要SOAP Web服務。您尚未指定客戶端在請求時是否知道成千上萬個xml文件的列表。這個答案假設客戶明確知道列表。

客戶

查找現有模塊或代碼,將允許iPhone應用程序從HTTP資源讀取XML。您將遇到像http://foo.com/bar/GetFile.ashx?file=1.xml 這樣的URL能夠讀取XML格式的響應內容。對您要下載到手機的每個xml文件重複此調用。

服務器

安裝一個Web應用程序來處理一個文件的請求。 創建一個新的.ashx Web處理程序類來偵聽和處理xml文件的請求。 這裏有一個簡單的例子來說明在服務器端:

public class GetFile : IHttpHandler 
{ 
    public void ProcessRequest(HttpContext context) 
    { 

     HttpResponse r = context.Response; 
     r.ContentType = "text/xml"; 

     string requestedFile = context.Request.QueryString["file"]; 

     //ensure you check that the value received on the querystring is valid. 
     string xmlFromDatabase = MyDataLayer.GetXmlByFileName(requestedFile); 

     //pump the XML back to the caller 
     r.Write(xmlFromDatabase);     
     } 

     public bool IsReusable{get{return false;}} 
    } 

所有文件未在運行時可用

如果您的客戶端不知道該文件的名稱,只需創建一個新方法該處理程序。它可以發佈它能夠提供的可用xml文件列表。

http://foo.com/bar/ListFiles.ashx

public class ListFiles : IHttpHandler 
    { 

     public void ProcessRequest(HttpContext context) 
     { 
      HttpResponse r = context.Response; 
      r.ContentType = "text/plain"; 

      //grab a listing of all the files from the database 
      var listFiles = MyDataLayer.GetAllXmlFilesAvailable(); 
      foreach (var file in listFile) 
      { 
       r.Write(file + "|"); 
      } 
     } 

      public bool IsReusable{get{return false;}} 
    } 
+0

是的,你是正確的IAM開發iPhone應用程序。 項目描述:SQL Server將以XML的形式存儲我的數據。每個XML將包含關於特定實體的信息。這些實體將按照A-Z的時間順序顯示在iPhone中。 將我的XML文件從Web服務/ Web應用程序後端轉移到我的iPhone上的最佳方法是什麼?因爲可能有超過1000個文件要傳輸,並且超過1000個用戶將並行訪問系統? – Defendore 2010-07-01 06:39:27

相關問題