Getting data from a REST service : REST Service « Communication « Silverlight






Getting data from a REST service

Getting data from a REST service
    

<UserControl x:Class='SilverlightApplication3.MainPage'
    xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' 
    xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
    xmlns:d='http://schemas.microsoft.com/expression/blend/2008' 
    xmlns:mc='http://schemas.openxmlformats.org/markup-compatibility/2006' 
    mc:Ignorable='d' 
    d:DesignWidth='640' 
    d:DesignHeight='480'>

  <Grid x:Name="LayoutRoot" Background="White">
    <Grid.RowDefinitions>
      <RowDefinition Height="Auto"></RowDefinition>
      <RowDefinition Height="Auto"></RowDefinition>
      <RowDefinition></RowDefinition>
    </Grid.RowDefinitions>
    <StackPanel Orientation="Horizontal" Grid.Row="0">
      <TextBox x:Name="tbxInput" Grid.Row="0" Height="25" Width="100" Margin="2"></TextBox>
      <Button x:Name="btnSingleXml" Content="Single Xml" Margin="2" Click="btnSingleXml_Click"></Button>
    </StackPanel>
    <TextBlock x:Name="tbkName" Height="Auto" Width="Auto" Grid.Row="1"></TextBlock>
    <TextBlock x:Name="tbkRaw" Height="Auto" Width="Auto" Grid.Row="2" TextWrapping="Wrap"></TextBlock>
  </Grid>
</UserControl>


//File: Page.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Threading;
using System.IO;

namespace SilverlightApplication3
{
  public partial class MainPage : UserControl
  {
    private SynchronizationContext UIThread;

    public MainPage()
    {
      InitializeComponent();
    }

    private void btnSingleXml_Click(object sender, RoutedEventArgs e)
    {
      UIThread = SynchronizationContext.Current;

      string rawPath = "http://localhost:50145/Authors.svc/SingleXml/{0}";

      Uri path = new Uri(string.Format(rawPath, tbxInput.Text), UriKind.Absolute);
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(path);
      request.BeginGetResponse(SingleXmlCallBack, request);
    }

    private void SingleXmlCallBack(IAsyncResult result)
    {
      HttpWebRequest request = (HttpWebRequest)result.AsyncState;
      HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result);
      Stream responseStream = response.GetResponseStream();

      UIThread.Post(UpdateUiText, responseStream);
    }

    private void UpdateUiText(object stream)
    {
      if (stream != null)
      {
        StreamReader sr = new StreamReader((Stream)stream);
        tbkRaw.Text = sr.ReadToEnd();
      }
      else
      {
        tbkRaw.Text = "";
      }
    }
  }
}

   
    
    
    
  








Related examples in the same category