WP7的Web服务

时间:2011-07-18 14:07:55

标签: windows-phone-7

我非常感谢您对我之前的问题的帮助,我想知道如何使用Web服务从URI读取数据(让我们假设它是相同的数据)。 这是网址链接: http://www.google.com/ig/api?weather=paris 我尝试使用此代码,但它不起作用:

 public MainPage()
        {
        InitializeComponent();

        WebClient wc = new WebClient();
        wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(download_string_complete);
        wc.DownloadStringAsync(new Uri("http://www.google.com/ig/api?weather=hammamet", UriKind.Absolute));
        }

    public void download_string_complete(object sender, DownloadStringCompletedEventArgs e)
        {


       if (e.Error == null)
            {
            ListBoxItem areaItem = null;
            StringReader stream = new StringReader(e.Result);
            XmlReader reader = XmlReader.Create(stream);

            string day = String.Empty;
            string low = String.Empty;
            string high = String.Empty;
            string condition = String.Empty;

            while (reader.Read())
                {
                if (reader.NodeType == XmlNodeType.Element)
                    {
                    if (reader.Name=="forecast_conditions")
                        {
                    WeatherElement welement = new WeatherElement();
                    switch (reader.Name)
                        {
                        case ("day_of_week"):
                                {
                                day = reader.ReadElementContentAsString();
                                areaItem = new ListBoxItem();
                                areaItem.Content = day;
                                friendsBox.Items.Add(day);
                                } break;

                        case ("low"):
                                {
                                low = reader.ReadElementContentAsString();
                                areaItem = new ListBoxItem();
                                areaItem.Content = low;
                                friendsBox.Items.Add(low);
                                } break;

                        case ("high"):
                                {
                                high = reader.ReadElementContentAsString();
                                areaItem = new ListBoxItem();
                                areaItem.Content = high;
                                friendsBox.Items.Add(high);
                                } break;

                        case ("condition"):
                                {
                                condition = reader.ReadElementContentAsString();
                                areaItem = new ListBoxItem();
                                areaItem.Content = condition;
                                friendsBox.Items.Add(condition);
                                } break;
                        }

                    }
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

  void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        if (e.Error == null)
        {
            StringReader stream = new StringReader(e.Result);
            XmlReader reader = XmlReader.Create(stream);

            string Day = String.Empty;
            string Low = String.Empty;
            string High = String.Empty;
            string ImageUri = String.Empty;
            string Condition = String.Empty;

            reader.MoveToContent();

            while (reader.Read())
            {
                switch (reader.Name)
                {
                    case ("day_of_week"):
                        {
                            listBox1.Items.Add(new ListBoxItem()
                              {
                                  Content = reader.GetAttribute("data")
                              });
                            Day = Content.ToString();
                        } break;
                    case ("low"):
                        {
                            listBox1.Items.Add(new ListBoxItem()
                            {
                                Content = reader.GetAttribute("data")
                            });
                            Low = Content.ToString();
                        } break;
                    case ("high"):
                        {
                            listBox1.Items.Add(new ListBoxItem()
                            {
                                Content = reader.GetAttribute("data")
                            });
                            High = Content.ToString();
                        } break;
                    case ("icon"):
                        {
                            listBox1.Items.Add(new ListBoxItem()
                            {
                                Content =  reader.GetAttribute("data")
                            });
                            Image wkpinImage = new Image();
                            wkpinImage.Source = new System.Windows.Media.Imaging.BitmapImage(new Uri("http://www.google.com" + Content, UriKind.Absolute));
                            wkpinImage.Opacity = 0.8;
                            wkpinImage.Stretch = System.Windows.Media.Stretch.None;
                        } break;

                    case ("condition"):
                        {
                            listBox1.Items.Add(new ListBoxItem()
                            {
                                Content = reader.GetAttribute("data")
                            });
                            Condition = Content.ToString();
                        } break;
                    case("weather"):
                    break;  
                }
            }
        reader.Close(); 
            }
        }