XML Download работает в эмуляторе, но не на телефоне - PullRequest
2 голосов
/ 24 ноября 2011

Я загружаю файл XML с сайта, который я создал, и он прекрасно работает на эмуляторе;однако, это не работает вообще на телефоне.Он возвращается с ошибкой веб-исключения и ошибкой ввода-вывода ... и свойство error из события HttpsCompleted говорит об ошибке, что удаленный сервер возвратил ошибку.Файл не найден.НО это работает на моем эмуляторе.

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);

        WebClient wc = new WebClient();
        wc.DownloadStringCompleted += HttpsCompleted;
        wc.DownloadStringAsync(new Uri("http://.../SessionInfo.xml"));

    }

    private void HttpsCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        XDocument doc = null;
        string results = null;

        if (e.Error == null)
        {
            XDocument xdoc = XDocument.Parse(e.Result, LoadOptions.None);
            List<XElement> xelem = xdoc.Root.Elements() as List<XElement>;

            results = e.Result;

            var sessions = from x in xdoc.Descendants("Session")
                           select new
                           {
                               ID = x.Descendants("ID").First().Value,
                               TITLE = x.Descendants("Title").First().Value,
                               TIME = x.Descendants("Time").First().Value,
                               DESCRIPTION = x.Descendants("Description").First().Value
                           };

            foreach (var wd in sessions)
            {
                sessionsList.Add(new Session(wd.ID, wd.TITLE, wd.TIME, wd.DESCRIPTION));
                Debug.WriteLine("Session ID is {0}, Title is {1}, Time is {2}", wd.ID, wd.TITLE, wd.TIME);
            }
        }

        SessionInfoList.ItemsSource = sessionsList;

XML выглядит так:

<request><Session><ID>1234-1234-1234-1234</ID><Title>Session Title</Title><Time>10:00AM-11:30AM</Time><Description>Some description.</Description></Session></request>

1 Ответ

0 голосов
/ 09 марта 2012

Во-первых, такой код должен быть запрещен, потому что вы рискуете исключением NullReferenceException:

TITLE = x.Descendants("Title").First().Value

Затем эмулятор использует интернет-соединение вашего компьютера, поэтому, если вы используете то же соединение с телефоном, проблема связана сна ваш телефон, не связанный с вашим кодом.

...