`
terryfeng
  • 浏览: 507026 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Silverlight 中的WebClient 与 WebRequest 示例

阅读更多

WebClient

public partial class webclientSample : UserControl
  {
      public webclientSample()
      {
          InitializeComponent();
          //定义URL地址
          string url = "http://localhost:2365/Sample.web/responseText.htm";
          //创建WebClient对象
          WebClient webClient = new WebClient();
          //定义异步请求地址
          webClient.DownloadStringAsync(new Uri(url
              , UriKind.RelativeOrAbsolute));
          //定义请求完成的事件处理
          webClient.DownloadStringCompleted +=
              new DownloadStringCompletedEventHandler
                  (webClient_DownloadStringCompleted);
      }

      private void webClient_DownloadStringCompleted(object sender
          , DownloadStringCompletedEventArgs e)
      {
          //显示返回值
          MessageBox.Show(e.Result.ToString());
      }
  }

WebRequest

public partial class webrequestSample : UserControl
    {
        //定义异步委托方法
        private delegate void DispatcherInvoke(string str);
        public webrequestSample()
        {
            InitializeComponent();
            //定义URL地址
            string url = "http://localhost:1398/Sample.web/responseText.htm";
            //创建WebClient对象
            WebRequest request =
                HttpWebRequest.Create(new Uri(url
                    , UriKind.RelativeOrAbsolute));
            //开始获取响应并进行异步回调
            request.BeginGetResponse(new AsyncCallback(responseReady)
                , request);
        }
        private void responseReady(IAsyncResult ar)
        {
            //返回异步回调结果对象
            WebRequest request = ar.AsyncState as WebRequest;
            //获取结果响应对象
            WebResponse response = request.EndGetResponse(ar);
            //定义返回流对象
            using (Stream stream = response.GetResponseStream())
            {
                //使用流读取对象
                StreamReader reader = new StreamReader(stream);

                //*** 直接读取将发生错误。
                //tbk.Text = "reader.ReadToEnd();

                //使用Dispatcher异步执行委托方法
                tb.Dispatcher.BeginInvoke
                    ((DispatcherInvoke)processResult
                    , reader.ReadToEnd());
            }
        }
        private void processResult(string result)
        {
            //显示返回字符串
            tb.Text = result;
        }
    }

分享到:
评论

相关推荐

    Silverlight 入门教程

    - **通信方式**:分别探讨使用WebClient、WebRequest、WCF、ASMX、JSON以及ADO.NET Data Services等方式进行网络通信的方法和技术细节。 #### 十八、综合实例之RSS阅读器 - **概述**:通过构建一个RSS阅读器来综合...

    silverlight访问数据库汇总

    在博客.sql和review文件中,可能包含了关于这些方法的示例代码或使用经验,可以帮助开发者更深入地理解如何在Silverlight中有效地访问数据库。通过结合理论知识和实践案例,开发者能够更好地掌握各种方法,并在实际...

    Silverlight入门教程.pdf

    - **实战经验分享**:分享个人在实际项目中使用Silverlight遇到的问题及解决办法。 通过上述知识点的学习,初学者可以系统地掌握Silverlight的基本概念和技术要点,并能快速上手进行简单应用的开发。此外,本书还...

    silverlight 通信

    在Silverlight中,我们可以利用WebClient来实现与服务器的通信,发送GET或POST请求,获取或发送数据。例如,当需要从服务器获取JSON格式的数据时,可以使用WebClient的DownloadStringAsync方法: ```csharp ...

    Silverlight同步通信

    在提供的压缩包文件`SilverlightCore_01_00`中,可能包含有关Silverlight同步通信的示例代码。通过对这些源码的深入研究,你可以看到如何在实际项目中实现和优化同步通信,以及如何在必要时切换到异步模式。 总结,...

    Silverlight 2教程

    - **与HTML DOM交互**:介绍了如何在Silverlight中与HTML DOM元素进行交互的方法。 - **调用JavaScript**:演示了如何从Silverlight应用程序中调用JavaScript函数。 - **用JavaScript调用.NET代码**:展示了如何让...

Global site tag (gtag.js) - Google Analytics