.NEt专家博客!
【李会军】一步一步学Silverlight 2系列(13):数据与通信之WebRequest
概述
Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlight 2系列》文章带您快速进入Silverlight 2开发。
本文将简单介绍在Silverlight 2中如何使用WebRequest进行数据的提交和获取。
简单示例
在本文中,我们仍然使用在一步一步学Silverlight 2系列(12):数据与通信之WebClient中用过的示例,只不过稍微做一点小的改动,使用WebRequest提交书籍编号数据,并根据书籍号返回价格信息。最终运行的结果如下图:
n)CRu/Qv aE:U0
Oj0s3{L E9k f0
编写界面布局,XAML如下:
<GridBackground="#46461F">编写HttpHandler,注意我使用了context.Request.Form["No"],在后面我们将使用WebRequest在RequestReady方法中将数据写入请求流:
1c`j!t9` `S_2~0<Grid.RowDefinitions>
G?QzO7^7A0<RowDefinitionHeight="40"></RowDefinition>
UW3@,ek0<RowDefinitionHeight="*"></RowDefinition>
leH%K+P0<RowDefinitionHeight="40"></RowDefinition>
]CFZ z0</Grid.RowDefinitions>
2o#al3J(X lV,hR0<Grid.ColumnDefinitions>
_(c9@)cg2U&|0<ColumnDefinition></ColumnDefinition>
'ytO!qm~ x_0</Grid.ColumnDefinitions>ITPUB个人空间 [ZV TpHD9i!uT/|0F
<BorderGrid.Row="0"Grid.Column="0"CornerRadius="15"
7\!V(]`.c G0Width="240"Height="36"
S&R#b un {%[U v'v&g0Margin="20 0 0 0"HorizontalAlignment="Left">ITPUB个人空间5Wk:\2@2? q3Q {
<TextBlockText="书籍列表"Foreground="White"ITPUB个人空间4_Ssg vdj.y
HorizontalAlignment="Left"VerticalAlignment="Center"ITPUB个人空间k d(x0QXW9n#Qle'hy
Margin="20 0 0 0"></TextBlock>
/v&{V'KXB0</Border>
QPcSV2P7B.UT0<ListBoxx:Name="Books"Grid.Row="1"Margin="40 10 10 10"
8XaXf \F^0SelectionChanged="Books_SelectionChanged">
%J%A^:[J$X\8u:PC0<ListBox.ItemTemplate>ITPUB个人空间3A pwVldV
<DataTemplate>
'a#yy9W-X ccHHnG0<StackPanel>
O"D[zPW)f0<TextBlockText="{BindingName}"Height="32"></TextBlock>ITPUB个人空间TB/l}1?;z
</StackPanel>
?R/['vyhg8np0</DataTemplate>ITPUB个人空间$Lc,w/KTjLVn
</ListBox.ItemTemplate>
-D([;XQ}0^%S0</ListBox>ITPUB个人空间 i;i$c9p+g#IK
<BorderGrid.Row="2"Grid.Column="0"CornerRadius="15"
o(VV)}ve0Width="240"Height="36"Background="Orange"
F N,hYy.`u0Margin="20 0 0 0"HorizontalAlignment="Left">ITPUB个人空间Qd? r d
<TextBlockx:Name="lblPrice"Text="价格:"Foreground="White"ITPUB个人空间 \AW'K%XO
HorizontalAlignment="Left"VerticalAlignment="Center"ITPUB个人空间:J+A?D'vre
Margin="20 0 0 0"></TextBlock>
b(g[-{fF6UW0</Border>
a7N,R {y4g%R5e&a0</Grid>
public classBookHandler:IHttpHandler
;N:j7Y;H~H:[0{
LG:?6i ?0public static readonly string[] PriceList =new string[] {ITPUB个人空间?)rcR3e-^nV'x^ d
"66.00",
tE&JKA K ~;@0"78.30",
*]}*hu4Q,O!p/D0"56.50",ITPUB个人空间K-B m#i||V
"28.80",ITPUB个人空间4F"Ub7A%si;h
"77.00"ITPUB个人空间ru+Ui6SPz;B o
};ITPUB个人空间5b`r&|E:[
public voidProcessRequest(HttpContextcontext)ITPUB个人空间:aQl qhMI9Y
{ITPUB个人空间z&Z O;M&Hd)_
context.Response.ContentType ="text/plain";