下面通過一個手機號碼歸屬地查詢例子來示範Windows Phone 7的應用程式如何調用web service 介面。
先看一下啟動並執行效果:
應用調用的手機號碼歸屬地查詢的web service介面為:
http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx
第一步 添加webservice的引用,將web service服務加入,這時產生了上述web服務在本地的一個代理。
由於.net平台內建了對Web Service的支援,包括Web Service的構建和使用,所以在Windows Phone 7項目中你不需要其他的工具或者SDK就可以完成Web Service的開發了。
添加web service引用後,項目的檔案目錄如下:
多了MobileReference服務和ServiceReferences.ClientConfig檔案
第二步 調用web service
先看一下XAML介面代碼
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<TextBlock Height="49" HorizontalAlignment="Left" Margin="12,66,0,0" Name="des" Text="請輸入你需要查詢的手機號碼" VerticalAlignment="Top" Width="284" />
<TextBox Height="72" HorizontalAlignment="Left" Margin="6,106,0,0" Name="No" Text="" VerticalAlignment="Top" Width="415" />
<Button Content="查詢" Height="72" HorizontalAlignment="Left" Margin="12,184,0,0" Name="search" VerticalAlignment="Top" Width="160" Click="search_Click" />
<TextBlock Height="211" HorizontalAlignment="Left" Margin="6,277,0,0" Name="information" Text="" VerticalAlignment="Top" Width="444" />
</Grid>
調用web service服務,代碼很簡潔。。。
public partial class MainPage : PhoneApplicationPage
{
public MainPage()
{
InitializeComponent();
}
private void search_Click(object sender, RoutedEventArgs e)
{
//執行個體化一個web service代理的對象
MobileReference.MobileCodeWSSoapClient proxy = new MobileReference.MobileCodeWSSoapClient();
//getMobileCodeInfo方法調用結束之後 觸發的事件
proxy.getMobileCodeInfoCompleted+=new EventHandler<MobileReference.getMobileCodeInfoCompletedEventArgs>(proxy_getMobileCodeInfoCompleted);
//將調用資訊包括方法名和參數加入到soap訊息中通過http傳送給web service服務端
//這裡對應的是調用了web service的getMobileCodeInfo方法
proxy.getMobileCodeInfoAsync(No.Text, "");
}
void proxy_getMobileCodeInfoCompleted(object sender, MobileReference.getMobileCodeInfoCompletedEventArgs e)
{
if (e.Error == null)
{
//顯示返回的結果
information.Text = e.Result;
}
}
}
ok。。。。