2011-07-18 71 views
0

我的確很感謝您對我以前的問題提供的幫助,我在想如何使用Web服務從URI讀取數據(讓我們假設它是相同的數據)。 這裏的URL鏈接: http://www.google.com/ig/api?weather=paris 我與此代碼tryied但沒有奏效:使用WP7的Web服務

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; 
         } 

        } 
       } 
      } 
     } 
    } 
+0

能否請您解釋一下「它不工作」? – CodeZombie

+0

它怎麼不起作用?發生了什麼?任何錯誤?如果是這樣的話?以及哪一行代碼導致了他們? –

+0

當我運行該應用程序時,它向我顯示一個空屏幕(它不讀取數據) – MarTech

回答

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(); 
      } 
     } 
+0

有人可以幫助我顯示圖像!!因爲只有它的網址顯示o_O – MarTech