【问题标题】:How to connect a iPhone to a .Net Web Service and get 1000's XML files efficiently?如何将 iPhone 连接到 .Net Web 服务并有效获取 1000 个 XML 文件?
【发布时间】:2010-06-30 19:25:59
【问题描述】:

我需要通过 .Net Web 服务获取存储在 sql server 数据库中的 1000 个 XML 文件,以便从 iPhone 调用?请建议在 .net 网络服务中处理它的更好方法?

【问题讨论】:

    标签: .net web-services soap


    【解决方案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;}}
        }
    

    【讨论】:

    • 是的,您是正确的,我正在开发 Iphone 应用程序。项目描述:SQL Server 将以 XML 的形式存储我的数据。每个 XML 都将包含有关特定实体的信息。这些实体将在 iPhone 中按时间顺序从 A-Z 显示为主题。将我的 XML 文件从 Web 服务/Web 应用程序后端传输到我的 iPhone 的最佳方法是什么,因为可能有超过 1000 个文件要传输并且超过 1000 个用户将并行访问系统?
    猜你喜欢
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    相关资源
    最近更新 更多