如何在Windows Phone 7中调用Web服务方法?

时间:2011-07-08 06:04:16

标签: windows-phone-7

为了连接到webservices,我编写了以下代码。

WebClient wc = new WebClient();
wc.DownloadStringAsync(new Uri("http://www.Webservices.asmx"));
wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);

void wc_DownloadStringCompleted(object sender,DownloadStringCompletedEventArgs e)
{
    Debug.WriteLine("Web service says: " + e.Result);
    using (var reader = new StringReader(e.Result))
    {
        String str = reader.ReadToEnd();
    }
}

通过使用上面的代码获取字符串结果。但我想在HTMLVisulaizer中获得结果然后我知道有什么方法有webservice.then我可以轻松访问特定的方法。 请告诉我如何在Windows Phone 7中调用Web服务方法?在webservice中我有5个webmethods.how来获取它以及如何调用特殊webmenthod。

请提前告诉我。

2 个答案:

答案 0 :(得分:5)

@venkateswara您是在谈论获取已知WebReference方法的列表,以便您知道在您的代码中调用哪一个?将WebReference添加到WP7项目时,是否看不到已知方法调用?由于您将在VS中开发WP7应用程序,因此我无法看到您希望这样做的原因。即使您自己没有自己的Web服务,也需要从VS连接到它,以便添加对项目的引用。

以下是VS2010中添加了WebReference的屏幕。 操作列在右侧。

enter image description here

添加后,您可以使用ObjectBrowser来了解应该如何调用这些方法。

如果我错过了你的问题,请告诉我。

答案 1 :(得分:2)

@Jason James

第一步:

您必须添加指称服务,例如Jason James有非常详细的说明。

第2步:

您可以在函数应用

中打开App.xaml.cs
public Apps()
{
    // Global handler for uncaught exceptions. 
            UnhandledException += Application_UnhandledException;

            // Show graphics profiling information while debugging.
            if (System.Diagnostics.Debugger.IsAttached)
            {
                // Display the current frame rate counters.
                Application.Current.Host.Settings.EnableFrameRateCounter = true;

                // Show the areas of the app that are being redrawn in each frame.
                //Application.Current.Host.Settings.EnableRedrawRegions = true;

                // Enable non-production analysis visualization mode, 
                // which shows areas of a page that are being GPU accelerated with a colored overlay.
                //Application.Current.Host.Settings.EnableCacheVisualization = true;
             }
           // You can declare objects here that you will use
           //Examlpe: NameservicesReferent.(Function that returns services) = new NameservicesReferent.(Function that returns services)();

Ws_Function = new Nameservices.ServiceSoapClient();

}

第3步:

在Mainpage.xaml.cs

GlobalVariables.Ws_advertise.getLinkAdvertiseIndexCompleted += new EventHandler<advertise.getLinkAdvertiseIndexCompletedEventArgs>(Ws_advertise_getLinkAdvertiseIndexCompleted);
GlobalVariables.***NameWedservise***.getLinkAdvertiseIndexAsync("**parameters to be passed**");

第4步:

void Ws_advertise_getLinkAdvertiseIndexCompleted(object sender, advertise.getLinkAdvertiseIndexCompletedEventArgs e)
        {
             //function returns the results to you, the example here is an array
           string[] array = null;
           try

           {
              array = e.result;
              if(array != null)

           }
           cath(exception ex)
           {

           }
           finally
           {
             array = null;
GlobalVariables.Ws_advertise.getLinkAdvertiseIndexCompleted -= new EventHandler<advertise.getLinkAdvertiseIndexCompletedEventArgs>(Ws_advertise_getLinkAdvertiseIndexCompleted);
           }
         }