XML下载在模拟器中工作,但不在电话上
问题描述:
我从我创建的站点下载XML文件,并且它在模拟器上正常工作;但是,它在电话上根本不起作用。它返回一个web异常错误和一个IO错误...以及来自HttpsCompleted事件的错误属性,说错误远程服务器返回错误。文件未找到。但这在我的模拟器上工作。XML下载在模拟器中工作,但不在电话上
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>
答
因为你冒险的NullReferenceException首先,这样的代码应该禁止:
TITLE = x.Descendants("Title").First().Value
然后,仿真器使用您的计算机的网络连接,因此如果您的手机使用相同的连接,则问题与手机相关,与您的代码无关。
也许一个愚蠢的问题;但您的手机是否可以通过内置webbrowser访问该文件? – Kolky
@Kolky是啊我试过了,xml在浏览器中显示正常 – jharr100
是否可以通过PC上的fiddler路由实际设备? (你可以用一些设备)。例如像这样的[iPhone例子](http://conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html)?我有兴趣知道'电话是否正确,它是文件未找到。 –