如何将asp.net Web服务器连接到iPhone

时间:2011-12-16 22:25:40

标签: iphone asp.net sql-server xml

我意识到还有其他帖子提出了类似的问题,但并没有完全回答我的问题。如果这不是足够的信息,格式化关闭,或者诸如此类,我道歉。这是我第一次发帖。

基本上我的小组正在做一个需要与我们的sql server数据库连接的iPhone应用程序。但是因为他们无法直接与对方交谈,我们正在实现一个接受XML的asp.net媒体,显然需要输出JSOD。目前我有一个.asmx用“工作”代码编写(代码中的测试字符串)。现在我只想尝试从iPhone接受XML。我觉得我们在他的结尾(iPhone)或我的结尾(.asmx)上都缺少某些东西。希望你聪明的头脑可以填补我,因为我们的综合研究....我觉得有些东西缺失了。也许我错了,我已经把我们的东西放在一起,这将是非常棒的。

显然,为了连接和传递信息,这就是他需要的(根据他的研究)。显然它不是.asmx但延伸权无关紧要?
NSURL *url = [NSURL URLWithString:@"http://myurl.com/RequestHandler.ashx"];

以下是我的.asmx代码(注意函数是肉的所在位置)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Xml.Linq;

    namespace Outbreak_Mobile
    {
        [WebService(Namespace = "http://OutbreakMobile.net/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
        // [System.Web.Script.Services.ScriptService]
        public class Service1 : System.Web.Services.WebService
        {
            [WebMethod (Description="To intake an xml package from iPhone and store it")]
            public string iPhoneLocation(string xml)
            {
                //test string to output to screen
                string location = null;

                //test string of xml to be parsed
                //will be converting next line to parse input xml
                //string xml = @"<Player>
            //                  <Latitude>42.13245465</Latitude>
            //                  <Longitude>11.11111111</Longitude>
                //               </Player>";

                //line to parse document
                //xdocument doc = xdocument.parse(incoming xml)
                XDocument doc = XDocument.Parse(xml);

                //grabs the information inside <player> tags
                XElement loc = doc.Elements("Player").SingleOrDefault();

                if (loc != null)
                {
                   var lat = (double)loc.Element("Latitude");
                   var lng = (double)loc.Element("Longitude");

                   location = "Lat: " + lat + '\n' + "Long: " + lng;
                }

                //this is what puts out to the screen
                return location;

            }
        }
    }

当前字符串'location'的输出仅用于功能测试,并且当我知道我正在接收包时将会更改。为了相互联系,我们缺少什么?

提前谢谢大家!

1 个答案:

答案 0 :(得分:0)

您创建了一个NSURL对象。现在,您需要创建一个NSURLConnection来从该URL下载数据。

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html

要传输从连接获得的NSData对象,只需使用NSString -initWithData:encoding:method。